You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何检测分离Dynamic Feature Module后的APK体积缩减量(无需Google Play)

嘿,这个问题我太有发言权了!把模块拆成Dynamic Feature Module后,要测体积缩减量完全不用上传Google Play,本地就能搞定,给你分享几个实用的方法:

1. 直接对比APK文件大小(最直观)
  • 先打包未拆分Dynamic Feature Module的完整Release APK:
    可以用Android Studio的Build > Bundle(s) / APK(s) > Build APK(s),或者终端执行./gradlew assembleRelease。找到生成的APK(一般在app/build/outputs/apk/release/目录),查看它的文件大小并记录。
  • 再打包拆分后的项目
    同样生成Release包,此时会得到Base APK(主模块的APK)和对应的Feature APK(拆分出的动态模块APK)。只需要拿Base APK的大小和之前的完整APK对比,两者的差值就是初始安装包减少的体积。
  • 划重点:一定要用Release包测试!Debug包带调试信息,体积虚高,对比结果毫无参考性。
2. 用Android Studio的APK Analyzer精准分析
  • 打开Android Studio,点击顶部菜单Build > Analyze APK,分别导入原完整APK和拆分后的Base APK。
  • 在Analyzer面板里,你不仅能看到APK的总大小,还能拆解到dex、资源文件、assets等各个部分的体积变化。既能算出总缩减量,还能搞清楚到底是哪部分帮你省了空间,比如是不是某个大资源被移到动态模块了。
3. 通过Gradle日志提取体积数据
  • 在项目根目录的终端执行./gradlew assembleRelease --info,运行过程中日志会输出每个APK的大小信息。你可以从中直接提取原APK和Base APK的数值,快速计算差值。
  • 如果经常需要做这类测试,还可以自定义Gradle任务,让它自动输出体积对比结果,不过这个需要点Gradle配置基础,按需尝试就行。
额外提醒

如果你的动态模块是按需下载的,用户首次安装的就是Base APK,所以对比原完整APK和Base APK的大小,就是用户实际能感受到的初始安装包减负效果。如果是即时安装的动态模块,那整体安装体积其实和原APK差不多,但拆分后能实现功能按需加载,优化启动速度之类的。

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

火山引擎 最新活动