课程名称:Top团队大牛带你玩转Android性能分析与优化
课程章节:App性能概览与平台化实践
主讲老师:随风绽放
课程内容
瘦身优化及 Apk 分析方案介绍
Apk 包的大小直接影响用户的下载和留存。部分厂商预装应用时对包的大小也有强制的要求。
随着业务的迭代开发,应用会越来越大,安装包会不停的膨胀,因此包大小缩减是一个长期持续的治理过程。
Apk 本质上是一个压缩文件,代码相关的内容被打包成 classes.dex文件,资源相关内容被打包成 res、asserts、resources.arsc,so文件则放在 lib 目录下。
常用的 Apk 分析工具有:
- ApkTool,反编译工具,通过命令 apktool d **.apk 来反编译 apk。
- Analyze APK,是 AndroidStudio 2.2 之后集成的工具,可以查看 Apk 的组成、大小和各类文件的占比,还能查看 dex 文件的组成,还能实现 Apk 的对比。
- Apk 性能分析网站,nimbledroid.com,可以按照文件大小来排行,可以统计 dex 中的方法数,SDK 的方法数,此外还能统计 apk 的启动时间和内存占用情况等。
- android-classyshark,二进制检查工具,支持多重格式包括.apk,jar,class,so等。
怎么降低 Apk 的包大小?
- 在代码层面,可以开启混淆,统一三方库,删除无用的代码;
- 在资源使用上,删除无用的资源,使用 webp 格式的资源文件等。
- 在 so 库上,可以考虑除了首次启动需要的 so 文件,其它的 so 库做动态下发。
课程收获
Apk 包体积监控应该作为发布流程的一个环节,最好是做到平台化、流程化,否则很难持续,没几个版本包体积又涨上来了。Apk 瘦身优化的大致思想,当前版本与上一个版本的包大小做对比,超过200KB需要审批,临时审批需要给出后续优化方案等。