apk、ipa包size优化手段

版权声明:转载请注明出处:http://blog.csdn.net/hursing https://blog.csdn.net/hursing/article/details/80813257
  1. 删除冗余代码和资源
  2. 能简单用代码画的图形,不使用图片
  3. 能使用系统API自己实现的,不使用第三方库。第三方库一般会考虑通用的情形,实际上不会用上它的全部功能。
  4. 重构
    • 抽离类似的代码做成通用的模块,减少复制粘贴出来的代码。
    • 删除过度设计的代码:看似抽象分层做得很好,但实际不会有作用的代码。(例如,只有一个子类的基类)
    • 算法优化,使用更少的代码来实现同一功能。
  5. 启动图:不使用多张图片来匹配不同分辨率,而是在UI设计上居中,用代码来实现
  6. 分包:不常用的功能做成插件包,可后续下载安装
  7. 使用网页代替原生页面来展示数据:把数据通过url传参,由WebView来显示数据
  8. 使用编译后size较小的语言
    • swift因为把运行时库也继承到包里,所以非常大
    • C,C++,Objective-C的编译结果是逐渐增大的
    • Android上,C++因为有多个CPU架构,虽然性能高,但size比java大
  9. 压缩资源
    • 图片、视频有损压缩,但不影响清晰度。使用压缩率高的文件格式。
    • 使用9-patch或stretch图片
    • 资源压缩,首次运行再解压出来
    • 在深层次路径的,首次运行再下载
    • minify或uglify json、xml等文本型资源(即去除换行、空白符、简化变量名等)
  10. 用代码实现代替可反序列化布局文件。xib、storyboard、xml等
  11. 编译参数优化(参见java、llvm或gcc等工具链的说明)
    • size最优化,编译或运行速度次要
    • 对不得不使用的第三方库做精简
    • 去除symbol
    • 去除不需要支持的CPU架构
    • 去除没使用到的代码
    • 去除调试代码,例如log
    • 混淆

猜你喜欢

转载自blog.csdn.net/hursing/article/details/80813257