性能优化之减少apk包大小

首先先说下Apk包大小优化的好处:

1,减少app内存使用

2,用户在应用市场下载安装时,往往会将apk的大小作为一个考虑因素

下面分享我以往的优化经验:

1,使用svg

使用svg可以减少少量包体积,

使用Android studio 可以直接导入svg文件,需要注意的是:PSD不支持渐变和透明度

批量导入svg:svg2vector.jar

将svg图片生成为指定维度的png图片 gradle文件下,defaultConfig节点下加上:

5.0以下版本的适配: vectorDrawables.generatedDensities('xhdpi','xxhdpi','xxxhdpi')

5.0以上的版本适配: vectorDrawables.useSupportLibrary = true

2,着色器

这个方案主要针对,图片一样,但是颜色不一样的,我们经常要写一些selector,里面就包含选中的状态和默认状态,这两个

状态一般都只是图片一样而颜色不一样,这时候就可以使用着色器优化,我们只需要使用一套图片,然后通过着色器修改选中的颜色,一般配合selector使用。

ImageView 里面的 android:tint='';属性

3,资源打包配置

如果你项目只需要中文,则可以配置:

gradle文件下,defaultConfig节点下加上: resourceConfigs("zh-rCN")

减少一些string占用的体积

4,动态库的打包配置

配置cpu架构

gradle文件下,defaultConfig节点下加上: ndk{ abiFilters('armeabi') }

这个可以减少非常多包体积

5,移除无用的资源

使用Lint找到无用的资源并删除,属于物理删除

6,开启混淆

7,开启资源压缩

并不是物理的删除,文件会保留,但是内容会被压缩,图片会变成占位符,xml文件代码会被删除。

需要在raw/keep.xml配置

shrinkResources true

8,使用图片之前要压缩

推荐使用webp格式,android studio 右键自带webp转换

9,资源的混淆、7z压缩、对齐、签名

有第三方的方案,一般为腾讯的和美团的,

腾讯方案:https://github.com/shwenzhang/AndResGuard

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值