android 压缩大小 打包_Android性能优化之包体积优化

Android中的包体积还是比较让人烦心的, 用户看见这么大的APK或者每次更新的时候都要花费巨大的流量去更新就想把你的APK给卸载掉,这里就记录下APK体积优化的方案

分析工具

首先我们可以使用Android Studio的Analyze APK去进行检测,我们可以通过Analyze APK看到APK到底哪些地方占用了空间。

用一套资源文件

正常来说去做一些适配的时候让UI剪切不同大小的图片来进行适配,但是我们可以让UI就剪切一套图片资源,放在xhdpi中,我们的项目也是一直都这么处理的,在不同分辨率手机上的展示感觉也没什么区别

开启代码混淆

通过开启代码混淆,然后配置一些资源压缩能够减少包体积的大小,我现有的项目44M,开启混淆,后能到39M

buildTypes {

release {

minifyEnabled true

}

}

复制代码

去除无用的资源

通过开启shrinkResources将那些没有任何父类调用的资源用更小的东西去替代,达到减小包体积的效果

buildTypes {

release {

shrinkResources true

}

}

复制代码

清理无用的资源

用Android studio工具自带的Remove Unused Resources,可以完全清理掉,这里不像上面使用shrinkResources一样是用小东西替代的,而是全部清理掉的

慎用!会将一些反射或者字符串拼接获取方式的也给清理掉

删除无用的语言

通过resConfigs 配置设置语言支持,如果没有国外的需求,我们只要有中国的语言就好了

defaultConfig {

resConfigs "zh"

}

复制代码

图片压缩

通过工具将资源图片进行压缩,或者采用一些jpeg,webp格式的图片,

so文件只采用armable

so文件我们用armable、armable-x86两种即可,基本是都适配,如果有特定的需求那就把其他的几种也加上

使用微信资源压缩打包工具

使用微信AndResGuard开源工具对资源进行压缩,他会将资源文件名进行混淆

使用provided编译

我们在集成一些第三方时,可能会出现一个问题,不同地区的定制化开发,比如A地区需要视屏会议功能,其他的地区又不要,那么其他的地区我们就不应该将视屏会议这个功能打进去,但是如果不打进去,跳转代码等等又会报错,这时候我们就可以用provided去依赖,保证编译通过

在Gradle.properties文件中建立一个参数为isMetting=true

然后在build.gradle中去判断该参数去分别依赖

if(isMeeting.toBoolean()){

implementation project(':mettinglibrary')

}else{

provided project(':mettinglibrary')

}

复制代码

使用shap背景

能够使用shap完成的图片就别让美工再出资源

避免重复的库

避免重复的库,比如说我,为了快速开发,引用了两个三级联动的库,纯粹是浪费空间,好好检查一下每个引用进来的库的真正用处,用在哪,是否多余

清除第三方库和冗余的代码

在快速开发中肯定会产生一些无用的代码,尽量去清理掉他,有时候来了一个需求,等你做好了后,他又说不要了,然后写的一大堆的的代码又给废弃了,有时候你还真不确定他说的不要是否是真的不要,短时间内又不敢删,所以我们可以定期两个月删一次无用代码

支持插件化

插件化是将APP业务分离出来,将代码单纯提出来,打包的时候不会打进包里去,可以说是减少包体积大小最有效的办法了,他不在乎你的其他资源是否压缩,需要的时候再去下载就好了,但是国内的插件化都会有适配风险,而去现在谷歌也不支持这种

感谢大佬的博客,让我学到了很多,本人上面所写都是本人检验过,或者正在用的方案,真实有效。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值