安卓优化之apk瘦身(27.7M-->17.5M)

概述

apk瘦身作为优化的一部分,它的大小决定安装的时间与占用的内存,进行针对性的瘦身也能够提高用户体验,下面就看我怎样将一个27.7M的安装包减肥到17.5M,足足减少了37.18%。

这里写图片描述

一、优化图片

图片占用了大部分体积,所以图片的优化首当其冲。

我使用的是TinyPng在线压缩工具,压缩前主要图片的大小(10.5M):

这里写图片描述

接下来我使用iSparta软件将一部分图片转为web格式,.9图片我转出来后as报错,暂时还没有去找解决方案,知道的伙伴可以留言指导一下哦,来看看压缩后的大小(2.68M):

这里写图片描述

效果是不是很可观啊,而且压缩后的图片质量也很好,完全满足应用所需的质量要求,项目中一些简单的图片也可以使用SVG矢量图;

二、优化无用资源

通过lint删除没有用过的资源:
选择inspect code…

这里写图片描述

然后我选择的是分析app,点击ok:

这里写图片描述

接下来就处理没有用到的资源了:

这里写图片描述

三、使用微信AndResGuard优化资源
在project的gradle中添加依赖:

//微信资源混淆工具
        classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.10'

在app的gradle中添加配置:

apply plugin: 'AndResGuard'

andResGuard {
    // mappingFile = file("./resource_mapping.txt")
    mappingFile = null
    use7zip = true
    useSign = true
    // it will keep the origin path of your resources when it's true
    keepRoot = false

    //白名单,不混淆的资源
    whiteList = [
            // your icon
            "R.drawable.icon",
            // for fabric
            "R.string.com.crashlytics.*",
            // for google-services
            "R.string.google_app_id",
            "R.string.gcm_defaultSenderId",
            "R.string.default_web_client_id",
            "R.string.ga_trackingId",
            "R.string.firebase_database_url",
            "R.string.google_api_key",
            "R.string.google_crash_reporting_api_key"
    ]
    compressFilePattern = [
            "*.png",
            "*.jpg",
            "*.jpeg",
            "*.webp",
            "*.gif",
            "resources.arsc"
    ]
    sevenzip {
        artifact = 'com.tencent.mm:SevenZip:1.2.10'
        //path = "/usr/local/bin/7za"
    }
}

AndResGuard优化使用了7zzip工具。
配置好之后在as右侧的gradle选项中会出现andresguard的task:

这里写图片描述

我们可以选择需要打包的apk类型进行优化;
看一下task流程:
这里写图片描述

最后一步就是在优化资源文件啦,优化之后是啥样的姑娘呢,瞧瞧去…

这里写图片描述

图片的路径变成了r/a5/…了;

优化前安装包大小:
这里写图片描述

优化后安装包大小:

这里写图片描述

减少了10.2M,还算不错吧;

四、总结

    优化工作到此告一段段落,还可以优化的地方还有,需要在工作中一步一步来,就这样吧!下午茶去了......
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值