使用以下 Instrumentation 参数配置库的行为。您可以将其添加到 Gradle 配置中,也可以在从命令行运行 Instrumentation 时直接应用它们。要为所有 Android Studio 和命令行测试运行设置这些参数,请将其添加到 testInstrumentationRunnerArguments
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
您也可以在从 Android Studio 运行基准测试时设置 Instrumentation 参数。要更改参数,请执行以下操作:
- 点击编辑,然后点击配置来编辑运行配置。
- 点击 更多,然后点击Instrumentation 参数来编辑 Instrumentation 参数。
- 点击Instrumentation Extra Params 下的 添加来添加所需的 Instrumentation 参数。
如果直接从命令行调用,请使用 -P android.testInstrumentationRunnerArguments.[参数名称]
。
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
androidx.benchmark.compilation.enabled
允许您在基准测试的每次迭代之间禁用编译。默认情况下,目标应用会在每次基准测试之间重新安装和重新编译,以遵守传递给 measureRepeated
的 CompilationMode
。禁用此功能可以让您跳过重新安装和编译,例如,如果您想在运行测试套件之前完全编译一次目标应用,然后对该完全编译的目标应用运行所有基准测试。
- 参数类型:布尔值
- 默认为:
true
androidx.benchmark.dryRunMode.enable
允许您在单个循环中运行基准测试,以验证其是否正常工作。您可以将其与常规测试一起用作验证的一部分。
- 参数类型:布尔值
- 默认为:
false
androidx.benchmark.enabledRules
允许将运行过滤到只有一种类型的测试:基线配置文件生成或宏基准测试。也支持逗号分隔的列表。
- 参数类型:字符串
- 可用选项
宏基准测试
BaselineProfile
- 默认为:未指定
androidx.benchmark.junit4.SideEffectRunListener
如果在基准测试运行期间执行了不相关的后台工作,您可能会得到不一致的基准测试结果。
要禁用基准测试期间的后台工作,请将listener
检测参数类型设置为androidx.benchmark.junit4.SideEffectRunListener
。
- 参数类型:字符串
- 可用选项
androidx.benchmark.junit4.SideEffectRunListener
- 默认为:未指定
androidx.benchmark.fullTracing.enable
启用androidx.tracing.perfetto
跟踪点,例如Jetpack Compose组合跟踪。
您需要设置项目才能从基准测试中捕获组合跟踪。有关更多信息,请参阅使用Jetpack Macrobenchmark捕获跟踪。
- 参数类型:布尔值
- 默认为:
false
androidx.benchmark.profiling.mode
允许在运行基准测试时捕获跟踪文件。可用选项与微基准库的选项相同——有关更多信息,请参阅分析微基准测试中的说明。
- 参数类型:字符串
- 可用选项
MethodTracing
StackSampling
None
- 默认为:
None
androidx.benchmark.startupProfiles.enable
允许您在基准测试期间禁用启动配置文件的生成。
- 参数类型:布尔值
- 默认为:
true
androidx.benchmark.suppressErrors
接受逗号分隔的错误列表,将其转换为警告。
- 参数类型:字符串列表
可用选项
DEBUGGABLE
DEBUGGABLE
错误表示目标包在其清单中以debuggable=true
运行,这会大幅降低运行时性能以支持调试功能。为避免此错误,请使用debuggable=false
运行基准测试。可调试参数会影响执行速度,这意味着基准测试改进可能无法延续到实际用户的体验,或者可能会降低发行版性能。LOW-BATTERY
电池电量低时,设备通常会降低性能以节省剩余电量,例如禁用大核心。即使设备已插入电源,也会发生这种情况。只有在您故意以降低的性能分析应用程序时,才应抑制此错误。
EMULATOR
EMULATOR
错误告诉您基准测试正在模拟器上运行,这不能代表真实用户设备。模拟器基准测试改进可能无法延续到实际用户的体验,或者可能会降低真实设备的性能。您应该改用物理设备进行基准测试。应极其谨慎地抑制此错误。NOT-PROFILEABLE
目标包
$packageName
正在运行,没有<profileable shell=true>
。在Android 10和11上,需要Profileable才能让Macrobenchmark从目标进程捕获详细的跟踪信息,例如应用程序或库中定义的系统跟踪部分。应极其谨慎地抑制此错误。METHOD-TRACING-ENABLED
正在基准测试的应用程序的Macrobenchmark运行启用了方法跟踪。这会导致虚拟机运行速度比平时慢,因此仅从相对角度考虑跟踪文件中的指标——例如,比较第一次运行与第二次运行的速度。如果您比较具有不同方法跟踪选项的构建的基准测试,则抑制此错误可能会导致结果不准确。
默认为:空列表
additionalTestOutputDir
配置在设备上保存JSON基准报告和性能分析结果的位置。
- 参数类型:路径字符串
- 默认为:测试APK的外部目录
为您推荐
- 注意:当JavaScript关闭时显示链接文本
- 微基准检测参数
- 创建基线配置文件
- JankStats库