android基础知识Android开发Android开发经验谈

APK打包优化-瘦身思路

2019-09-14  本文已影响0人  space0o0

apk文件中有个resource.arsc,用于resource资源文件的映射表
每个资源都有一个ID:0x7f0f0001
0x7f:任意ID开头都是这个字段
0f:代表资源类型的种类,01,02,03等等 (anim,attr,color等等)
0001:代表资源的在该类的下标(0001,0002,0003排序下去)

用途:简单icon,复杂图不建议

瘦身等级:中

//gradle中
//只保留默认和指定的资源
resConfig('zh-rCN')

瘦身等级:低

ndk{
    abiFilters('armeabi')
}

瘦身等级:高

minifyEnabled true //开启混淆

瘦身等级:低

shrinkResources true

资源的大图没有地方使用,用Lint的 unused resource 监测出来是无效资源,然而代码中其实是有反射技术获取该资源的。那么,使用这种方式监测出来,再移除资源是不安全的,就可以使用开启资源压缩的方式。把资源压缩,压缩的本质就是用一张空的占位资源替换原始图片,存放于apk中。资源还是能找到,不过就是张空的占位资源了。

其他:如果想要保存这个无效资源,不被占位,可以在res/raw下创建keep.xml文件,keep住该资源,相关链接:压缩代码和资源 | Android Developers

瘦身等级:中 (根据无效资源的大小,瘦身等级不定)

上一篇 下一篇

猜你喜欢

热点阅读