创建基准配置文件

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

作为应用开发者,您可以使用 Jetpack Macrobenchmark 库BaselineProfileRule 为每个应用版本自动生成配置文件。建议使用 com.android.tools.build:gradle:7.3.0 或更高版本,因为这些版本改进了使用基准配置文件时的构建功能。

如需使用 Macrobenchmark 库创建基准配置文件,请执行以下操作:

  1. 在 Gradle 项目中设置一个 Macrobenchmark 模块

  2. 定义一个称为 BaselineProfileGenerator 的新测试,如下所示:

    @OptIn(ExperimentalBaselineProfilesApi::class)
    class TrivialBaselineProfileBenchmark {
        @get:Rule
        val baselineProfileRule = BaselineProfileRule()
    
        @Test
        fun startup() = baselineProfileRule.collectBaselineProfile(
            packageName = "com.example.app",
            profileBlock = {
                startActivityAndWait()
            }
        )
    }
    

    您可以查看一些其他关于测试的示例,了解如何使用 @BaselineProfileRule 来改善关键用户历程。

  3. 如需设置 Gradle 管理的设备,请打开 build.gradle.kts 文件,然后在 testOptions 配置块中添加 managedDevicesdevices,并创建模拟器定义。请务必使用 aosp 作为 systemImageSource,因为您需要拥有对基准配置文件生成器的 root 访问权限。

    Kotlin

    testOptions {
        managedDevices {
            devices {
                create ("pixel6Api31", ManageVirtualDevice::class) {
                    device = "Pixel 6"
                    apiLevel = "31"
                    systemImageSource = "aosp"
                }
            }
        }
    }
    

    Groovy

    testOptions {
        managedDevices {
            devices {
                pixel6Api31(com.android.build.api.dsl.ManagedVirtualDevice) {
                    device = "Pixel 6"
                    apiLevel = 31
                    systemImageSource = "aosp"
                }
            }
        }
    }
    
  4. Gradle 会根据您选择的设备名称和模块中可用的 build 变体为您创建任务。其格式为 [emulator_name][flavor][build type]AndroidTest。您可以从终端运行此任务,例如:

    ./gradlew :benchmark:pixel2Api31BenchmarkAndroidTest
    

应用生成的规则

  1. [module name]/build/outputs/managed_device_android_test_additional_output/[device name] 中找到生成的配置文件。配置文件遵循 [class name]-[test method name]-baseline-prof.txt 命名模式,其格式应如下所示:TrivialBaselineProfileBenchmark-startup-baseline-prof.txt

  2. 将生成的配置文件与 AndroidManifest.xml 一起复制到应用模块的 src/main/。然后,将该文件重命名为 baseline-prof.txt

  3. 在应用的 build.gradle 中为 ProfileInstaller 库添加一个依赖项,以启用本地和 Play 商店中的基准配置文件编译。这是在本地旁加载基准配置文件的唯一方式。

    dependencies {
         implementation("androidx.profileinstaller:profileinstaller:1.2.0")
    }
    

其他说明

创建基准配置文件时,还需要注意一些其他事项:

  • 不应对基准 build 进行混淆处理。在生成基准配置文件时,请务必将 -dontobfuscate 添加到 Proguard 规则文件中。

  • 基准配置文件在压缩后必须小于 1.5 MB。如需验证基准配置文件的大小,您可以在输出工件中找到相应文件(APK:位于 assets/dexopt/baseline.prof 下;AAB:位于 BUNDLE-METADATA/com.android.tools.build.profiles/baseline.prof 下)。

  • 如果宽泛规则对应用编译过多,就会增加磁盘访问,进而降低启动速度。您应测试基准配置文件的性能。