Rename launch*AndWait operations -> startActivityAndWait
Bug: 177356913
Test: ./gradlew bench:b-m:cC
More closely match context.startActivity
Change-Id: I71b9ae97dd44ca1bd0b2718f6ac927782b44a738
diff --git a/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/FrameTimingMetricValidation.kt b/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/FrameTimingMetricValidation.kt
index 2e6ae44..c3c7319 100644
--- a/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/FrameTimingMetricValidation.kt
+++ b/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/FrameTimingMetricValidation.kt
@@ -59,7 +59,7 @@
setupBlock = {
val intent = Intent()
intent.action = ACTION
- launchIntentAndWait(intent)
+ startActivityAndWait(intent)
}
) {
val recycler = device.findObject(By.res(PACKAGE_NAME, RESOURCE_ID))
diff --git a/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/ProcessSpeedProfileValidation.kt b/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/ProcessSpeedProfileValidation.kt
index b01e547..d4be8d52 100644
--- a/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/ProcessSpeedProfileValidation.kt
+++ b/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/ProcessSpeedProfileValidation.kt
@@ -46,7 +46,7 @@
startupMode = startupMode
) {
pressHome()
- launchPackageAndWait()
+ startActivityAndWait()
}
companion object {
diff --git a/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/StartupUtils.kt b/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/StartupUtils.kt
index 2cd381d..f07501f 100644
--- a/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/StartupUtils.kt
+++ b/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/StartupUtils.kt
@@ -44,5 +44,5 @@
val intent = Intent()
intent.setPackage(TARGET_PACKAGE)
setupIntent(intent)
- launchIntentAndWait(intent)
+ startActivityAndWait(intent)
}
diff --git a/benchmark/macro-junit4/src/main/java/androidx/benchmark/macro/junit4/MacrobenchmarkRule.kt b/benchmark/macro-junit4/src/main/java/androidx/benchmark/macro/junit4/MacrobenchmarkRule.kt
index 19cbcdd..887e9b9 100644
--- a/benchmark/macro-junit4/src/main/java/androidx/benchmark/macro/junit4/MacrobenchmarkRule.kt
+++ b/benchmark/macro-junit4/src/main/java/androidx/benchmark/macro/junit4/MacrobenchmarkRule.kt
@@ -40,7 +40,7 @@
* @param compilationMode Mode of compilation used before capturing measurement, such as
* [CompilationMode.SpeedProfile].
* @param startupMode Optional mode to force app launches performed with
- * [MacrobenchmarkScope.launchIntentAndWait] (and similar variants) to be of the assigned
+ * [MacrobenchmarkScope.startActivityAndWait] (and similar variants) to be of the assigned
* type. For example, `COLD` launches kill the process before the measureBlock, to ensure
* startups will go through full process creation. Generally, leave as null for non-startup
* benchmarks.
diff --git a/benchmark/macro/src/androidTest/java/androidx/benchmark/macro/ActionsTest.kt b/benchmark/macro/src/androidTest/java/androidx/benchmark/macro/ActionsTest.kt
index 59c12f2..f191f0d 100644
--- a/benchmark/macro/src/androidTest/java/androidx/benchmark/macro/ActionsTest.kt
+++ b/benchmark/macro/src/androidTest/java/androidx/benchmark/macro/ActionsTest.kt
@@ -35,7 +35,7 @@
fun killTest() {
val scope = MacrobenchmarkScope(PACKAGE_NAME, launchWithClearTask = true)
scope.pressHome()
- scope.launchPackageAndWait()
+ scope.startActivityAndWait()
assertTrue(isProcessAlive(PACKAGE_NAME))
scope.killProcess()
assertFalse(isProcessAlive(PACKAGE_NAME))
@@ -51,7 +51,7 @@
compilation.compile(PACKAGE_NAME) {
executions += 1
scope.pressHome()
- scope.launchPackageAndWait()
+ scope.startActivityAndWait()
}
assertEquals(iterations, executions)
}
diff --git a/benchmark/macro/src/androidTest/java/androidx/benchmark/macro/StartupTimingMetricTest.kt b/benchmark/macro/src/androidTest/java/androidx/benchmark/macro/StartupTimingMetricTest.kt
index 27ef5d4..631c490 100644
--- a/benchmark/macro/src/androidTest/java/androidx/benchmark/macro/StartupTimingMetricTest.kt
+++ b/benchmark/macro/src/androidTest/java/androidx/benchmark/macro/StartupTimingMetricTest.kt
@@ -52,7 +52,7 @@
scope.killProcess()
scope.dropKernelPageCache()
scope.pressHome()
- scope.launchPackageAndWait {
+ scope.startActivityAndWait {
it.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
it.action =
"androidx.benchmark.integration.macrobenchmark.target.TRIVIAL_STARTUP_ACTIVITY"
diff --git a/benchmark/macro/src/main/java/androidx/benchmark/macro/MacrobenchmarkScope.kt b/benchmark/macro/src/main/java/androidx/benchmark/macro/MacrobenchmarkScope.kt
index 9b8c818..102f124 100644
--- a/benchmark/macro/src/main/java/androidx/benchmark/macro/MacrobenchmarkScope.kt
+++ b/benchmark/macro/src/main/java/androidx/benchmark/macro/MacrobenchmarkScope.kt
@@ -43,19 +43,27 @@
private val device = UiDevice.getInstance(instrumentation)
/**
- * Launch the package, with a customizable intent.
+ * Start an activity, by default the default launch of the package, and wait until
+ * its launch completes.
+ *
+ * @param block Allows customization of the intent used to launch the activity.
*/
- fun launchPackageAndWait(
+ fun startActivityAndWait(
block: (Intent) -> Unit = {}
) {
val intent = context.packageManager.getLaunchIntentForPackage(packageName)
?: throw IllegalStateException("Unable to acquire intent for package $packageName")
block(intent)
- launchIntentAndWait(intent)
+ startActivityAndWait(intent)
}
- fun launchIntentAndWait(intent: Intent) {
+ /**
+ * Start an activity with the provided intent, and wait until its launch completes.
+ *
+ * @param intent Specifies which app/Activity should be launched.
+ */
+ fun startActivityAndWait(intent: Intent) {
// Must launch with new task, as we're not launching from an existing task
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
if (launchWithClearTask) {
@@ -68,11 +76,20 @@
)
}
+ /**
+ * Perform a home button click.
+ *
+ * Useful for resetting the test to a base condition in cases where the app isn't killed in
+ * each iteration.
+ */
fun pressHome(delayDurationMs: Long = 300) {
device.pressHome()
Thread.sleep(delayDurationMs)
}
+ /**
+ * Force-stop the process being measured.
+ */
fun killProcess() {
Log.d(TAG, "Killing process $packageName")
device.executeShellCommand("am force-stop $packageName")
diff --git a/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/compose/integration/macrobenchmark/ProcessSpeedProfileValidation.kt b/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/compose/integration/macrobenchmark/ProcessSpeedProfileValidation.kt
index 8f6ef50..43a0f581 100644
--- a/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/compose/integration/macrobenchmark/ProcessSpeedProfileValidation.kt
+++ b/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/compose/integration/macrobenchmark/ProcessSpeedProfileValidation.kt
@@ -49,7 +49,7 @@
startupMode = startupMode
) {
pressHome()
- launchPackageAndWait()
+ startActivityAndWait()
}
companion object {
diff --git a/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/compose/integration/macrobenchmark/StartupUtils.kt b/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/compose/integration/macrobenchmark/StartupUtils.kt
index 025cb84..dfbb035 100644
--- a/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/compose/integration/macrobenchmark/StartupUtils.kt
+++ b/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/compose/integration/macrobenchmark/StartupUtils.kt
@@ -48,5 +48,5 @@
val intent = Intent()
intent.setPackage(TargetPackage)
setupIntent(intent)
- launchIntentAndWait(intent)
+ startActivityAndWait(intent)
}
\ No newline at end of file