一、如何优化?
1:确定需要优化哪些内容
使用android APK Analyze分析APK各个部分的大小,5.1.1版本apk大小分布如下:
分析的结果是需要优化三个地方
- res(app资源包括图片和xml资源)
- classes.dex(javac编译后的文件)
- 引入的第三方lib库
1.1:res优化
1.1.1 使用TinyPNG对图片资源进行压缩
tinypng 是一个支持压缩png和jpg图片格式的网站,通过其独特的算法(通过一种叫“量化”的技术,把原本png文件的24位真彩色压缩为8位的索引演示,是一 种矢量压缩方法,把颜色值用数值123等代替。)
可以实现在无损压缩的情况下图片文件大小缩小到原来的30%-50%。
使用TinyPNG对大小超过10KB的图片进行压缩,处理的结果是apk大小减少了0.6M左右
1.1.2 使用Android lint对代码中无用的资源进行清理
在项目中,点击菜单栏的Analyze -> Run Inspection by Name ... →输入unused resources lint分析删除的资源约0.2M
1.1.3 只保留中文相关的资源
在android support库中包含了国际化的字符串,点评管家现在不需要支持国际化, 所以对除中文以外的资源进行删除
在module下的builde.gradle文件中的defaultConfig闭包中加入 :
resConfigs "zh-rCN"
1.1.4 配合ProGuard工具使用shrinkResources对无用代码清理后的无引用资源的清理
在proguard工具删除项目中没有使用到的class和class中的成员之后,会产生一些没有被引用到的资源需要被删除,在
build.gradle中编译release版本时加入 shrinkResources true 来开启缩减无用资源的功能
|
1.2:class.dex优化
自定义proguard规则在proguard-rules.pro中指定哪些类和哪些类的成员需要被保留,不能被删除和重命名。
具体的规则如下:
|