android 安装包大小优化

本文介绍了如何优化Android安装包大小,主要包括三个方面:res资源优化,如使用TinyPNG压缩图片,清理无用资源;classes.dex优化,通过ProGuard指定保留规则并分析混淆效果;第三方lib库清理,仅保留armabi目录。通过这些方法,可以显著减小apk的体积。
摘要由CSDN通过智能技术生成

一、如何优化?

1:确定需要优化哪些内容

 使用android APK Analyze分析APK各个部分的大小,5.1.1版本apk大小分布如下:

        

                分析的结果是需要优化三个地方

  1. res(app资源包括图片和xml资源)           
  2. classes.dex(javac编译后的文件)   
  3. 引入的第三方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 来开启缩减无用资源的功能

         

buildTypes {
    release {
        shrinkResources true  
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        debuggable false
        jniDebuggable false
        renderscriptDebuggable false
    }
}

1.2:class.dex优化

   自定义proguard规则在proguard-rules.pro中指定哪些类和哪些类的成员需要被保留,不能被删除和重命名。

   具体的规则如下:

-ignorewarnings

##start------------------------------android系统相关----------------------------------------------
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep 
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值