【性能优化】-android App size优化

813 阅读2分钟

apk size查看

一张Google官方给出的Apk构建流程

安装包的大致构成

  1. assets目录

存放一些配置文件、资源文件,assets不会自动生成对应的ID,通过AssetManager类的接口获取。

  1. lib目录

存放程序依赖的jar、aar、so库

  1. res目录

res是resource的缩写,存放资源文件,会自动生成对应的ID并映射到.R文件中,通过资源ID使用。

  1. META-INF 目录

保存应用的签名信息,签名信息可以用来验证APK文件的完整性。

  1. AndroidManifest.xml

用来描述Android应用的配置信息,一些组件的注册信息、可使用权限等。

  1. classes.dex

Dalvik 字节码程序,App 打包时通过Android SDK 中的dx工具将java字节码转换为Dalvik 字节码。

  1. resources.arsc

记录资源文件和资源ID之间的映射关系,用来根据资源ID寻找资源。

App size优化总结

  • 优化图片大小,使用As自带工具把png转为webp或者使用 tinyPNG 压缩图片大小压缩效果可以更好 地址:tinypng.com/

  • gradle设置优化

//启用代码混淆, 所有class混淆包括第三方库可以有效减小体积,**第三方直接是包没有源码的可以添加包名不参与混淆**
minifyEnabled true 
//国际化控制
resConfigs "zh","en"
// 表示只是用xxhdpi目录下的资源文件
resConfigs "xxhdpi" 
//是否优化zip  
zipAlignEnabled true  
// 移除无用的resource文件  
shrinkResources true  
//配置需要适配的cpu类型
 abiFilters "armeabi-v7a"      
  1. 检查是否引入了重复功能的第三方库(图片加载库,glide,picasso,fresco, Json解析 Gson,fastJson),其他第三方库的裁剪。
  2. 尝试使用动态加载so库文件,插件化开发。
  3. 将大资源文件放到服务端,启动后自动下载使用。
  4. 上线前代码加固等