安卓性能优化 -apk瘦身

95 篇文章 0 订阅

apk瘦身7步曲

1:图片格式转换为webp格式

AS自带转换工具

webp对图片的压缩,效率可以达到99%,比libjepg使用哈夫曼压缩效率还高,(libjepg使用的是哈夫曼对rgb元素进行变频压缩,webp使用预测技术压缩,利用关键帧 对四面预测 )

选中需要转换的图片所在的文件夹,鼠标右键选择convert to webp, 工具就会把可以转换的图片批量转换为webp,有些图片占用内存很小转换不能减少内存就会不转换。如果想单独转换某种图片可以选择这张图片,鼠标右键选择convert to webp。

//安卓4.2后才支持webp,使用libwebp库兼容全版本

打包好动态库(只支持arm)的demo  https://github.com/zhudaihao/WebpDemo

2 :去除多过语言

//去除多语言 只保留英文和中文资源
resConfigs 'en','zh'

3:如果项目使用了第三方库或者自己使用了ndk,配置只需打包支持armeabi-v7的,不配置默认支持全平台,占用内存比较大

//设置支持so库的架构
ndk {
    abiFilters "armeabi-v7a"
}

4:使用lint工具删除无用的资源

使用lint:点击AS的AnalyZe选择Run Inspection by Nmae 

搜索unused resources

 

回车后,选择删除资源的范围,是整个工程 还是一个项目(下面图是对一个工程范围删除无用资源)

点击OK后显示无用的资源 (包括xml文件 和图片等);建议备份下,对每个资源核实后一个个删除

 

 

5:开启混淆(对代码压缩 优化 混淆  :删除未使用的代码,优化字节码 混淆类 属性 方法名成难读懂的字母)

buildTypes {
    release {
//开启代码混淆
minifyEnabled true
//混淆文件配置(会在下面括号文件 Proguard-rules.pro文件 找混淆规则)
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

//注意在proguard-rules.pro文件里面配置混淆

具体配置混淆规则 https://mp.csdn.net/postedit/90575529

 

6:压缩没有的资源

buildTypes {
    release {
        //开启代码混淆
        minifyEnabled true
        //混淆文件配置(会在下面括号文件 Proguard-rules.pro文件 找混淆规则)
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        //无用资源压缩(注意minifyEnabled为true才有效)
        shrinkResources true
        //签名配置
        signingConfig signingConfigs.config
    }

}

//注意如果你在res  -》raw --》新建个keep.xml 文件自己定义删除规则,就需要配置所有需要不被删除的资源

(如果没有配置keep文件,那么系统会处理使用反射的资源)

配置keep.xml文件

如何开启严格模式

<?xml version="1.0" encoding="utf-8"?>

<resources xmlns:tools="http://schemas.android.com/tools"

    tools:shrinkMode="strict" />

 

如何手动保留xml

<?xml version="1.0" encoding="utf-8"?>

<resources xmlns:tools="http://schemas.android.com/tools"

    tools:keep="@layout/base_*,@mipmap/tp"

    tools:discard="@layout/unused2" />

 

7:使用AndResGuard微信资源压缩方案

Andresguard是什么

AndResGuard是一个apk压缩工具,它会把原本长的资源路径变短,例如res/mipmap/tb 变成r/m/t

为什么使用AndResGuard

以往开发中,我们通常只对代码混淆,没有对资源文件混淆,res下的文件夹可读性太强,

具体使用 https://mp.csdn.net/postedit/97785182

注意 项目中使用反射获取的资源 需要添加到 白名单 (and-res-guard.gradle),

 

 

demo源码:https://github.com/zhudaihao/WebpD

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值