MacrobenchmarkScope
class MacrobenchmarkScope : UiAutomatorTestScope
| kotlin.Any | ||
| ↳ | androidx.test.uiautomator.UiAutomatorTestScope | |
| ↳ | androidx.benchmark.macro.MacrobenchmarkScope |
Provides access to common operations in app automation, such as killing the app, or navigating home.
Summary
Public constructors |
|---|
MacrobenchmarkScope(packageName: String, launchWithClearTask: Boolean) |
Public functions |
|
|---|---|
Unit |
Drop Kernel's in-memory cache of disk pages. |
Unit |
Deletes the shader cache for an application. |
Unit |
Force-stop the process being measured. |
Unit |
This function is deprecated. Use the parameter-less killProcess() API instead |
Unit |
Perform a home button click. |
Unit |
startActivityAndWait(block: (Intent) -> Unit)Start an activity, by default the launcher activity of the package, and wait until its launch completes. |
Unit |
startActivityAndWait(intent: Intent)Start an activity with the provided intent, and wait until its launch completes. |
Protected functions |
|
|---|---|
open Unit |
startIntentAndWait(intent: Intent)When launching activities through UiAutomator APIs, perform a full startActivityAndWait, which includes Macrobenchmark's custom wait-for-frames logic which would be hard to reproduce/implement in UiAutomator. |
Public properties |
|
|---|---|
Int? |
Current Macrobenchmark measurement iteration, or null if measurement is not yet enabled. |
String |
ApplicationId / Package name of the app being tested. |
Inherited functions |
||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Inherited properties |
|---|
Public constructors
MacrobenchmarkScope
MacrobenchmarkScope(packageName: String, launchWithClearTask: Boolean)
Public functions
dropKernelPageCache
fun dropKernelPageCache(): Unit
Drop Kernel's in-memory cache of disk pages.
Enables measuring disk-based startup cost, without simply accessing cache of disk data held in memory, such as during androidx.benchmark.macro.StartupMode.COLD.
| Throws | |
|---|---|
IllegalStateException |
if dropping the cache fails on a API 31+ or rooted device, where it is expected to work. |
dropShaderCache
fun dropShaderCache(): Unit
Deletes the shader cache for an application.
Used by measureRepeated(startupMode = StartupMode.COLD) to remove compiled shaders for each measurement, to ensure their cost is captured each time.
Requires profileinstaller 1.3.0-alpha02 to be used by the target, or a rooted device.
| Throws | |
|---|---|
IllegalStateException |
if the device is not rooted, and the target app cannot be signalled to drop its shader cache. |
funkillProcess(useKillAll: Boolean = false): Unit
Force-stop the process being measured.
| Parameters | |
|---|---|
useKillAll: Boolean = false |
should be set to |
pressHome
fun pressHome(delayDurationMs: Long = 0): Unit
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.
startActivityAndWait
fun startActivityAndWait(block: (Intent) -> Unit = {}): Unit
Start an activity, by default the launcher activity of the package, and wait until its launch completes.
This call supports primitive extras on the intent, but will ignore any android.os.Parcelable extras, as the start is performed by converting the Intent to a URI, and starting via the am start shell command. Note that from api 33 the launch intent needs to have category android.intent.category.LAUNCHER.
| Parameters | |
|---|---|
block: (Intent) -> Unit = {} |
Allows customization of the intent used to launch the activity. |
| Throws | |
|---|---|
IllegalStateException |
if unable to acquire intent for package. |
startActivityAndWait
fun startActivityAndWait(intent: Intent): Unit
Start an activity with the provided intent, and wait until its launch completes.
This call supports primitive extras on the intent, but will ignore any android.os.Parcelable extras, as the start is performed by converting the Intent to a URI, and starting via the am start shell command. Note that from api 33 the launch intent needs to have category android.intent.category.LAUNCHER.
| Parameters | |
|---|---|
intent: Intent |
Specifies which app/Activity should be launched. |
Protected functions
startIntentAndWait
protected open fun startIntentAndWait(intent: Intent): Unit
When launching activities through UiAutomator APIs, perform a full startActivityAndWait, which includes Macrobenchmark's custom wait-for-frames logic which would be hard to reproduce/implement in UiAutomator.
Public properties
iteration
val iteration: Int?
Current Macrobenchmark measurement iteration, or null if measurement is not yet enabled.
Non-measurement iterations can occur due to warmup a CompilationMode, or prior to the first iteration for StartupMode.WARM or StartupMode.HOT, to create the Process or Activity ahead of time.
packageName
val packageName: String
ApplicationId / Package name of the app being tested.