diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPixelCopy.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPixelCopy.java index a070ce1cb09..9039e885e99 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPixelCopy.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPixelCopy.java @@ -25,6 +25,7 @@ import org.robolectric.annotation.Implements; import org.robolectric.shadow.api.Shadow; import org.robolectric.shadows.ShadowWindowManagerGlobal.WindowManagerGlobalReflector; +import org.robolectric.util.PerfStatsCollector; import org.robolectric.util.reflector.Accessor; import org.robolectric.util.reflector.Constructor; import org.robolectric.util.reflector.ForType; @@ -168,10 +169,18 @@ private static void takeScreenshot(View view, Bitmap screenshot, @Nullable Rect Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888); if (HardwareRenderingScreenshot.canTakeScreenshot()) { - HardwareRenderingScreenshot.takeScreenshot(view, bitmap); + PerfStatsCollector.getInstance() + .measure( + "ShadowPixelCopy-Hardware", + () -> HardwareRenderingScreenshot.takeScreenshot(view, bitmap)); } else { - Canvas screenshotCanvas = new Canvas(bitmap); - view.draw(screenshotCanvas); + PerfStatsCollector.getInstance() + .measure( + "ShadowPixelCopy-Software", + () -> { + Canvas screenshotCanvas = new Canvas(bitmap); + view.draw(screenshotCanvas); + }); } Rect dst = new Rect(0, 0, screenshot.getWidth(), screenshot.getHeight());