You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Macro Benchmark能否在不清除应用数据的情况下运行?

Android Macro Benchmark 非清数据模式测试配置方法

默认配置下,Macro Benchmark 每次执行测试前会自动清除被测应用的所有私有数据,这个行为可以手动关闭,完全支持在保留应用数据的前提下执行测试。

  • 配置方式:在编写基准测试逻辑时,将measureRepeated作用域内的clearPackageData参数设置为false即可关闭自动清数据逻辑,代码示例:
@get:Rule
val macrobenchmarkRule = MacrobenchmarkRule()

@Test
fun startupBenchmark() {
    macrobenchmarkRule.measureRepeated(
        packageName = "com.your.app.package",
        metrics = listOf(StartupTimingMetric(), FrameTimingMetric()),
        iterations = 5,
        startupMode = StartupMode.COLD,
        // 关闭每次测试前自动清除应用数据
        clearPackageData = false
    ) {
        pressHome()
        startActivityAndWait()
        // 编写常规测试交互逻辑
    }
}

针对许可协议前置的场景,有两种可选适配方案:

  1. 保持clearPackageData = false配置:先单独执行一次初始化用例,启动应用后通过脚本自动走完许可协议同意流程,后续所有基准测试执行时都会保留这个状态,不会再弹出协议弹窗中断测试。
  2. 保持默认clearPackageData = true配置(推荐用于冷启动指标测试场景):在测试启动后的交互逻辑里加入自动识别、点击许可协议同意按钮的步骤,每次清数据启动后自动完成协议确认,既不影响冷启动等场景的指标准确性,也不会被弹窗中断流程,示例逻辑:
// 启动应用后自动处理协议弹窗
val licenseAgreeButton = device.findObject(By.res("协议同意按钮的资源ID"))
if (licenseAgreeButton.exists()) {
    licenseAgreeButton.click()
    device.waitForIdle()
}

注意:关闭clearPackageData后,应用本地缓存、已授权权限、登录态等所有本地数据都会在多轮测试间保留,测试得到的启动、性能指标会和首次安装启动的纯净状态有偏差,仅适合测试用户长期使用后的应用性能场景。

内容的提问来源于stack exchange,提问作者Chanson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 01:03:35