Android apk包瘦身的几种方式

Android apk包瘦身主要是从三个方面出发:

1.Java代码方面

  • 开启minifyEnable
    众所周知,在build.gradle中配置minifyEnable可以起到混淆代码的作用,但是它的作用其实不光光是混淆代码,他还能起到压缩优化的作用,开启后可以找出代码中没有用到的代码,这些代码将不会生成在apk中,另外混淆的效果是使用简短的字母替代原来的类名属性名等,一定程度上也可以减小代码体积。
  • 对于项目中开源库的选择要慎重
    对于开源库中我们只选择用相关功能的库,某一些开源库可以提供很多功能,例如某些orc识别SDK坑我们只会用到银行卡识别功能,此时身份证识别功能我们就可以选择放弃,我们可以选择它的轻量级库,而不用一股脑的都选择,这样也可以起到瘦身的作用。

2.资源文件瘦身

  • 开启shrinkResources功能
    shrinkResources标识是否去除无用的resource文件,它需要配合minifyEnable使用,同样存在反射机制引用的问题。
  • 图片资源
    对于app中的图片文件,项目中会有mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi这几个文件夹,这种是为了兼容过去的各种图片文件等,这样就会没一个文件夹都有一套图,带来的问题也就是导致apk文件变大,在高分辨率智能手机盛行的今天,我们完全可以采用只选择一套图片放在xxxhdpi文件夹的这种方式。
    不涉及透明图层的图片可以尽量在保证不失真的情况下,更多的选择.jpg类型代替.png类型。
    对于某些大图,可以在能替换的情况下,用较小的图片代替之。
    tinypng插件同样也可以解决这类问题,我们可以把图片放在该网站中压缩一遍,该插件的压缩率可以达到70%左右,在我们常人眼里看来这些图片其实是没有多大区别的。

3.lib文件夹

so文件最终会被打包到libs目录中,我们针对libs目录的瘦身主要是去除不必要的平台ABI的so文件,例如我们只保留v7a和x86平台的so


defaultConfig {

ndk {

abiFilters "armeabi-v7a","x86"

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容