返回
瘦包要先探清底细,紧盯业务需求显瘦身之法
开发工具
2023-09-15 20:44:35
因何胖,必先知之
闲鱼包大小的增长,既是版本功能迭代的体现,也是技术进步的必然结果。那么闲鱼的包到底胖在哪里呢?
- 体积的膨胀: 安卓安装包大小从年初的141M涨到如今的201M,涨幅近43%;iOS安装包大小从年初的156M涨到如今的197M,涨幅26%。
- CPU指令集爆炸: 随着Android端支持的CPU指令集增多,相同的代码对应不同CPU指令集的机器码字节大小也不同,导致APK体积也随之增大。
- 链接库重复: Android和iOS均支持将一些功能相同的C/C++代码编译成动态链接库,然后打包到apk/ipa中。如果同一个工程使用了多个不同的动态链接库,那么重复的代码就会导致APK/ipa体积增大。
- 资源冗余: Android和iOS均支持在编译期或运行期将资源文件(如图片、声音等)打包到apk/ipa中。如果同一个工程中使用了多个相同的资源文件,那么这些冗余的资源文件就会导致apk/ipa体积增大。
- 业务功能的增长: 闲鱼的业务功能一直在不断增长,这必然会导致相关的代码和资源文件增多,从而导致apk/ipa体积也随之增大。
对症下药,直击痛点瘦身
知道了闲鱼包大小增长的原因,接下来就是对症下药,找到合适的瘦身方法了。
- 瘦身工具和技术选择: 安卓可使用Android Gradle Plugin(AGP)自带的ProGuard或第三方瘦身工具DexGuard等,iOS可使用Xcode自带的Bitcode或第三方瘦身工具如SwiftLint等。
- 持续集成: 在开发过程中,应将瘦身作为持续集成的一部分,并在每次代码提交后自动进行瘦身。
- 优化代码结构: 应尽量避免使用匿名类,并尽量使用接口和抽象类。
- 减少不必要的功能: 应尽量减少不必要的功能,如一些只在特定场景下才会用到的功能。
- 压缩资源文件: 应尽量对资源文件进行压缩,如图片可以使用TinyPNG等工具压缩,音频可以使用MP3Encoder等工具压缩。
- 优化业务逻辑: 应尽量优化业务逻辑,减少不必要的代码和资源文件。
知己知彼,百战不殆
在瘦身过程中,应始终牢记“知己知彼,百战不殆”的原则,即要充分了解自己的代码和资源文件,才能有针对性地进行瘦身。
- 分析代码库: 应使用代码分析工具,如Android Studio自带的Analyze功能或第三方代码分析工具如SonarQube等,分析代码库,找出冗余的代码和资源文件。
- 分析资源文件: 应使用资源分析工具,如Android Studio自带的Analyze功能或第三方资源分析工具如Android Asset Studio等,分析资源文件,找出冗余的资源文件。
- 了解业务需求: 应充分了解业务需求,明确哪些功能是必须的,哪些功能是可以舍弃的。
总结经验,持续优化
在瘦身过程中,应及时总结经验,不断优化瘦身方法。
- 记录瘦身方法和效果: 应将每一次瘦身的具体方法和效果记录下来,以便在后续的瘦身过程中参考和改进。
- 分享瘦身经验: 应积极分享瘦身经验,以便其他开发者学习和借鉴。
结语
瘦身是一项长期而艰巨的任务,但只要持之以恒,终能取得成效。希望广大开发者积极参与到瘦身工作中来,共同为打造更加精简、高效的闲鱼应用而努力。