一、包结构
1、assets 资源文件
2、res 资源文件
3、*.dex Dalvik字节码
4、META-INF 签名信息
5、lib so库
二、图片资源
1.数量 -> 图片命名规范,方便维护图片 (去除无用图片) ,尽量共用图片
2.大小 -> 简单图用xml或draw .9 都可,如不透明,尽量用jpg , 还可用webp、svg替代
3.压缩 -> 推荐使用tinyPNG ,或者AndroidStudio 插件TinyPic 压缩
三、so文件
只保留 armeabi-v7a ,去除其它架构支持。(如有第3方支持不足,需对功能进行判断,防止carsh)
四、代码
1.去除无用代码 Lint工具检测 手动删除 | 配置文件开启无用代码不打进apk shrinkResources true
2.对齐
3.混淆 minifyEnabled true
4.压缩 zipAlignEnabled true
五、动态加载
1.插件化
2.大图片、文件
3、Google App Bundle
WEBP
目前WEBP与JPG相比较,编码速度慢10倍,解码速度慢1.5倍,虽然会增加额外的解码时间,但是由于减少了文件体积,缩短了加载的时间,实际上文件的渲染速度反而变快了。
4.2.1+ 对于webp的decode、encode是完全支持的(包含半透明的webp图)
对于4.0+ 到 4.2.1 ,只支持完全不透明的decode、encode的webp图
4.0 以下,应该是默认不支持webp了
参考:https://www.jianshu.com/p/4c691322aeba