22 | 包体积优化(上):如何减少安装包大小?
该思维导图由 AI 生成,仅供参考
安装包的背景知识
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了移动应用开发中的包体积优化问题,并指出了包体积对应用性能和用户体验的重要影响。文章提出了多种优化方法,包括删除无用或低价值的业务、采用小程序和H5开发模式等。此外,还详细介绍了代码优化、Dex分包、Dex压缩等技术手段,特别强调了Dex分包和Dex压缩对于包体积优化的重要性。文章还介绍了Facebook和ReDex的相关优化实践,为移动应用开发者提供了有益的技术指导。另外,还提到了oatmeal在Tinker中的应用以及对Native Library的优化方法,包括Library压缩、Library合并与裁剪等。总之,本文通过深入分析和技术实践,强调了包体积优化对于提升应用性能和用户体验的重要性,为移动应用开发者提供了有益的技术指导。文章还提到了包体积监控的重要性,以及对包体积的监控方法和规则。最后,文章提出了课后作业,鼓励读者尝试使用ReDex项目来优化应用的包体积,并欢迎读者分享自己的包体积优化工作和方法。
《Android 开发高手课》,新⼈⾸单¥59
全部留言(20)
- 最新
- 精选
- Geek_a8c19dSample里的Release包dex重排优化后APK变大 redex --sign -s ReDexSample/keystore/debug.keystore -a androiddebugkey -p android -c redex-test/interdex.config -P ReDexSample/proguard-rules.pro -o redex-test/interdex_output-release.apk ReDexSample/build/outputs/apk/release/ReDexSample-release.apk
作者回复: 重排并不是为了减少size,不过可以diff一下是哪一块变大了。会不会只是压缩率的问题
2019-09-232 - nb Ack老师您好。我想问一下减少 apk 体积是不是可以通过配置 ndk { abiFilters 'armeabi-v7a' } 减少打出的 so 文件。听说微信就是这样的?这会有什么问题吗?
作者回复: 在国内为了减少安装包体积,一般都是单abi的,不仅仅是微信
2019-08-0221 - elephantF家的方案总是让人不可思议,经常想大喊,你们至于么,方案搞得这么黑科技!!!以前看fresco和reactnative实现,请问我跪的标准么。😂
作者回复: 对的,不过感觉他们玩的太飘了,可以参考但是不好全盘接受
2019-03-051 - CoderAndyFacebook把dex放在assets下那么在首次启动解压后,如何执行dexopt?或者会不会执行该操作?
作者回复: 不执行dexopt,直接通过oatmeal自己生成odex
2019-02-1321 - Allen其实更好奇怎样在启动速度快的要求下 减少包体大小 还是这两者必须择一呢
作者回复: 类似dex分包以及某些手段,是既能减少包体积又能提升启动速度。 如果需要权衡的事情,我们要看自己的应用处于哪个阶段,目前更加严峻的是哪个问题
2019-02-091 - 詹伟动态库压缩,动态库拷贝成功后才有戏,如果拷贝失败了怎么破,apk内直接读是不能压缩的
作者回复: 只能删除一些缓存文件,或者提示用户清理空间了
2019-09-04 - 天空项目用了small插件化,ApkChecker不能分析以so库的插件,怎么办?
作者回复: 可能需要适配一下才行
2019-06-02 - joker°mess 还是在维护的~
作者回复: 抱歉抱歉
2019-05-07 - 小小代码还有个问题,Redex重分包的功能,如果我使用通过-printconfiguration "build/outputs/mapping/proguard-rules.pro"生成的合并之后的Proguard文件,会打印 InterDexPass not run because no ProGuard configuration was provided的日志,但我实际上配置了Proguard文件啊
作者回复: 需要拼到命令行中: redex -P proguard_rule.txt -c interdex.config boot-free-debug.apk -o redex.apk
2019-04-13 - 小小代码试了下Redex重分包的功能,发现个问题,如果我使用通过-printconfiguration "build/outputs/mapping/proguard-rules.pro"生成的合并之后的Proguard文件,会打印 InterDexPass not run because no ProGuard configuration was provided的日志,但我实际上配置了Proguard文件啊
作者回复: 可以拼在命令行中: redex -P proguard_rule.txt -c interdex.config boot-free-debug.apk -o redex-uc.apk
2019-04-13