diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowArscAssetManager10.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowArscAssetManager10.java index 470df765bb9..3c4ba90a1a1 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowArscAssetManager10.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowArscAssetManager10.java @@ -73,6 +73,7 @@ import org.robolectric.res.android.ResXMLTree; import org.robolectric.res.android.ResourceTypes.Res_value; import org.robolectric.shadow.api.Shadow; +import org.robolectric.util.PerfStatsCollector; import org.robolectric.util.ReflectionHelpers; import org.robolectric.util.ReflectionHelpers.ClassParameter; import org.robolectric.util.reflector.Direct; @@ -1388,6 +1389,30 @@ protected static void nativeApplyStyle( @NonNull int[] java_attrs, long out_values_ptr, long out_indices_ptr) { + PerfStatsCollector.getInstance() + .measure( + "applyStyle", + () -> + nativeApplyStyle_measured( + ptr, + theme_ptr, + def_style_attr, + def_style_resid, + xml_parser_ptr, + java_attrs, + out_values_ptr, + out_indices_ptr)); + } + + private static void nativeApplyStyle_measured( + long ptr, + long theme_ptr, + @AttrRes int def_style_attr, + @StyleRes int def_style_resid, + long xml_parser_ptr, + @NonNull int[] java_attrs, + long out_values_ptr, + long out_indices_ptr) { CppAssetManager2 assetmanager = AssetManagerFromLong(ptr); Theme theme = Registries.NATIVE_THEME9_REGISTRY.getNativeObject(theme_ptr); CHECK(theme.GetAssetManager() == assetmanager); diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowArscAssetManager9.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowArscAssetManager9.java index a33eab2f75a..71342beba41 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowArscAssetManager9.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowArscAssetManager9.java @@ -73,6 +73,7 @@ import org.robolectric.res.android.ResXMLTree; import org.robolectric.res.android.ResourceTypes.Res_value; import org.robolectric.shadow.api.Shadow; +import org.robolectric.util.PerfStatsCollector; import org.robolectric.util.ReflectionHelpers; import org.robolectric.util.ReflectionHelpers.ClassParameter; import org.robolectric.util.reflector.Direct; @@ -1378,6 +1379,30 @@ protected static void nativeApplyStyle( @NonNull int[] java_attrs, long out_values_ptr, long out_indices_ptr) { + PerfStatsCollector.getInstance() + .measure( + "applyStyle", + () -> + nativeApplyStyle_measured( + ptr, + theme_ptr, + def_style_attr, + def_style_resid, + xml_parser_ptr, + java_attrs, + out_values_ptr, + out_indices_ptr)); + } + + private static void nativeApplyStyle_measured( + long ptr, + long theme_ptr, + @AttrRes int def_style_attr, + @StyleRes int def_style_resid, + long xml_parser_ptr, + @NonNull int[] java_attrs, + long out_values_ptr, + long out_indices_ptr) { CppAssetManager2 assetmanager = AssetManagerFromLong(ptr); Theme theme = Registries.NATIVE_THEME9_REGISTRY.getNativeObject(theme_ptr); CHECK(theme.GetAssetManager() == assetmanager);