1.保留指定和默认资源
// apk-string.xml
resConfigs('zh-rCN','ko')
在 resources.arsc 下的 string 中可以看到各种语言(这些语言是从哪里来的?)这些语言其实来自于 com.android.support:appcompat-v7 包中

下面看看加入上面配置之后

对比两个文件,是不是一目了然
2.将指定SO库打包APK
这里用的是百度语音的 SO 库

接下来开始配置
sourceSets{
main{
jniLibs.srcDirs = ['libs']
}
}
在 defaultConfig 中配置打包到 APK 的SO库
//将指定的So库打包到APK
ndk{
abiFilters('armeabi')
}
记录下配置前 APK 大小

接下来看看配置之后 APK 大小

18.6M → 5.48M 现在只是一部分 SO 库,真实项目可能会用到更多 SO 库。
对比两个文件,是不是一目了然
3.移除无用的资源(打包配置)
物理删除(不推荐,想了解的可以百度)
shrinkResources true

看看配置之后

390B → 47B ,只需要在 res 目录下创建 keep.xml ,然后打包时配置 shrinkResources true
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:keep="@layout/activity_main"
tools:shrinkMode="strict"
/>
4.webp
还是先上图,在 drawable 中放入2M左右的图片(可能工程中会引用 1M 或者更大的图片),将它作为背景图,看看打包后 APK 的大小

打包大小

接下来将图片转化为 webp
选中图片,反键,Convert to WebP

选择比例

可以看到图片的比例,也可以调整比例,然后点击完成

接下来看看打包后的 APK 大小

由 6.21MB → 4.33MB
网友评论