用途:确保 Jetpack Compose 的性能数据反映生产实际。debug 构建的 Compose 以解释方式运行、Live Literals 会把常量包成 getter、R8 配置偏弱,因此 debug 的重组计数、启动数据和编译器报告并不代表用户体验。
主要能力:指导配置带符号的 release 构建进行诚实测量;强调从 release 输出目录读取 Compose 编译器报告;要求 Macrobenchmark 面向 release 变体并使用 CompilationMode.Partial(BaselineProfileMode.Require);建议用 @TraceRecomposition 复核重组计数;报告任何数字时附带变体、设备、编译模式与迭代次数。
必要用法要点:在 release 中启用 isMinifyEnabled 与 isShrinkResources,并引用 proguard-android-optimize.txt;可用 debug 签名以便安装。读取报告:./gradlew :app:assembleRelease -PcomposeCompilerReports=true,随后查看 app/build/compose_compiler/ 下带 _release 后缀的文件。若需原生符号解析,在 release 中设置 ndk { debugSymbolLevel = "FULL" }。Kotlin 2.0+ 的 Compose Compiler DSL 已无 LiveLiterals 开关,构建 release 即默认关闭。
适用场景:开发者报告来自 debug 或 CompilationMode.None 的性能数字、准备提交性能缺陷或基准数据、设计 CI 性能门禁、疑惑基准为何比 Play 商店差、以及阅读 Compose 编译器报告之前。
限制与排除:功能开发阶段、行为与集成测试仍在 debug 进行;R8 自身配置、生成 Baseline Profile、逐行解读编译器报告分别属于其他技能。需 Kotlin 2.0+ 与 Compose Gradle 插件、可用的 release 签名配置、真实物理设备;模拟器与 Cuttlefish 数字不可互换。以上内容基于公开资料,未提供的价格或平台细节暂未说明。