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