size优化规范
本文主要针对Android移动应用的size优化规范
1. 衡量标准
App的size很难有统一的标准,因为需求差异对size的影响非常大。
简单的app可能仅有2M,3M,而大型的app可能有20M,30M不等(例如:Wechat:58.5M,爱奇艺:29.94,支付宝57.99。应用宝数据)
虽然没有统一的标准,但是通过竞品对比,三方库依赖等多个方面来大约估算size标准
例如Contact app 评估如下
如果是特殊功能确实需要额外的size,需要列出size增加的必要理由
2. 分析
分析步骤如下:
A. 查看app size分布
B. 分析各项占比较高的可优化性
例如:res, assets 资源;lib库;dex
3. 优化
size优化步骤如下:
A. 无用资源
- 使用AS工具:“Remove Unused Resources” 移除Unused资源 (需要注意反射调用的资源不能移除)
- Pad,多国语言等资源是否必要
B. Res资源
- icon建议使用svg格式适配所有型号的专案
- 无需透明度图片建议使用jpg而非png图片
C. Lib库
- lib库是否必要,能否仅加载arm so
- 使用针对智能手机优化过的库
D. Dex
- 移除无用代码,移除enum等
E. Gradle编译
启用ProGuard 压缩
buildTypes {
release {
minifyEnabled true //启用代码压缩,混淆
shrinkResources true //启用资源压缩
zipAlignEnabled true
}
}
zipAlignEnabled是对应用程序中的资源作对齐操作
使得在运行时Android与应用程序间的交互更加有效率。
这种方式能够让应用程序和整个系统运行得更快