Android性能优化-Apk瘦身(3)

本文总结了Apk瘦身的关键操作,包括资源文件的优化(如dpi选择、WebP格式、代码绘制)、启用minifyEnable和shrinkResources、清理冗余so和lib,以及谨慎选择第三方库。通过grade打包配置提升性能效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android性能优化-Apk瘦身(1)Android性能优化-Apk瘦身(2),今天我们说些总结。

上述两文,我们述说了Apk瘦身从哪些方面入手,哪些地方值得我们去发现问题以及解决问题,这篇文章我们总结下常规性操作,包括grade打包配置。

1、资源文件优化

a、项目中可选择对主流的dpi支持,例如我们项目目前选择xxhdpi作为对标,对于大图片,可以通过网络加载方式执行。

defaultConfig {
resConfigs "zh" //表示只使用中文
resConfigs "xxhdpi" // 表示只是用xxhdpi目录下的资源文件}

b、项目中的图片以及动图采用webp格式。

图片

c、对于图片绘制功底比较的同学,可多采用svg、shape、代码绘制、NinePatch格式(.9格式)等方式来替代图片资源。

d、资源中尽量使用android系统本身存在的资源,例如字体(实在要用,可到网上寻找简化版资源)

e、对于大资源采用网络加载方式,例如视频、音频、大图、gif、json文件等,当然这种情况要充分考虑网络加载失败的情况,免得业务受阻。

f、在我们业务中,涉及到了so库,并且这些so库占比很很大,我们可以对部分so库执行动态加载方案。

2、开启minifyEnable

它的作用不仅仅是混淆代码,还有压缩优化的功能,他会遍历所有代码并找出没有引用到的代码,这些代码不会生成在apk中,混淆的效果是使用简短的字母替代原来的类名属性名等,一定程度上也可以减小代码体积。此时要注意对于不该混淆的要做keep处理,另外对于那些反射的类要做keep处理。

3、开启shrinkResources功能

shrinkResources标识是否去除无用的resource文件,它需要配合minifyEnable使用,同样存在反射机制引用的问题,这种情况会被误删。

android {
buildTypes {
release {minifyEnable trueshrinkResources true  } 
}
}

4、libs目录瘦身

so文件最终会被打包到libs目录中,我们针对libs目录的瘦身主要是去除不必要的平台ABI的so文件,对于不重要的so库可参考上面1方案中的f条。

defaultConfig {

ndk {

      abiFilters "armeabi-v7a", "arm64-v8a"

   }

}

5、慎重选择第三方库

一些第三方库他的功能很判断,考虑问题很全面,有些开源框架他会根据功能不同提供了精简版,有些会根据不同的平台提供了精简版,还有根据不同的cpu架构提供了不同的精简版,我们要根据的需求选择不同的版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值