Baseline Profile 安装时优化在西瓜视频的实践

💡 原文中文,约32100字,阅读约需77分钟。
📝

内容提要

介绍了Android应用优化中的Baseline Profiles技术,通过预编译热点代码提升应用运行效率。提供了相应的代码实现和厂商合作方案,验证优化效果。

🎯

关键要点

  • Android应用的Java/Kotlin代码编译为DEX字节码,运行时由虚拟机解释执行,速度较慢。
  • Android 5引入全量AOT优化,但导致应用启动时间长和磁盘空间占用大。
  • Android 7采用JIT+AOT混合编译模式,实时编译热代码以提升运行效率。
  • Android 9推出Cloud Profiles技术,通过云端收集热点代码,但用户体验仍受限。
  • 2022年推出Baseline Profiles技术,允许开发者内置热点代码配置文件,提升应用运行效率。
  • Baseline Profiles的局限性包括需要AGP 7及以上版本和依赖Google Play。
  • 开发了一套定制化的Baseline Profiles优化方案,适用于全版本AGP,并与国内厂商合作。
  • Baseline Profile安装时优化流程包括热点方法收集、编译期处理和安装期处理。
  • 使用Jetpack Macrobenchmark库和BaselineProfileRule自动收集热点方法。
  • 通过profman命令收集app运行过程中的热点方法,生成基准配置文本文件。
  • 编译期处理将基准配置文本文件转换为二进制文件,并打包至APK内。
  • 安装期处理在APK安装时解析baseline.prof文件,进行dex优化。
  • 与国内主流厂商合作推进Baseline Profile安装时优化的落地。
  • 优化效果显示,冷启动耗时减少约10%,提升用户体验。
➡️

继续阅读