Android Studio 双击apk 可以查看apk 各类文件的占比,如下图
从图中可以看出,apk 大小占比依次是 assets, classes.dex, res, lib 。
Android apk 包大小优化。
主要涉及以下几个方面:
1)jniLibs 下so 文件优化
so编译类型:
Android 64位机 默认是支持armeabi-v7a 的,所以为了节省为了节省apk的体积,只需要保存一份so 文件,放到armeabi-v7a下。
so加载:
加载so 有两种方法
第一种方法,System.loadLibrary("") 直接加载jniLibs 目录下so.
第二种方法,System.load() 加载任意路径下的so, 因此如果so 不是需要立刻加载的,就可以放在服务器上,慢慢下载,从而可以减少apk 的体积。
2)Res, assets 文件优化
删除无用资源: 手动lint 检查,手动删除无用资源
使用tinypng 等图片压缩工具对图片进行压缩
图片类型,尽量使用webp 格式图片
动画类型,使用属性动画/补间动画 替代帧动画
gradle.buile 中 设置 shrinkResources true, 开启资源压缩
3)class.dex 优化
去掉冗余的库:比如 android.support库,Glide和Picasso 二者选一
使用provided 编译:provided 只参与编译阶段,不参与打包。但是需要判断打包时不引入该第三方库,不会执行到与第三方库相关代码,避免app 崩溃。