Android apk 体积优化

 

  1. 每一个CPU架构对应一个ABI:armeabi,armeabi-v7a,x86,mips,arm64-v8a,mips64,x86_64

    所有的x86/x86_64/armeabi-v7a/arm64-v8a设备都支持armeabi架构的.so文件,x86设备能够很好的运行ARM类型函数库,但并不保证100%不发生crash,特别是对旧设备。64位设备(arm64-v8a, x86_64, mips64)能够运行32位的函数库,但是以32位模式运行,在64位平台上运行32位版本的ART和Android组件,将丢失专为64位优化过的性能(ART,webview,media等等)。所以一般的应用完全可以根据自己业务需求选择使用armeabi或者armeabi-v7a一种支持就行。

     2.代码优化

        添加设置minifyEnabled true混淆、压缩代码,这个设置现在app应该都已经添加了。删除一些无用库,早期为了兼容低          版本手机,添加了一些兼容库,随着时间推移APP支持的最低版本也在升高,之前的一些无用库就可以移除。

    3.资源优化 (android studio自带的lint)  

     而说到资源必然要说的是图片优化,毕竟图片是资源体积中占大头。

     我们可以选择体积更小的图片,比方说webp格式。要注意的是,webp在4.3以下有一些兼容问题,选择需谨慎。而对于png         也   可以采用有损或无损压缩图片,常见工具有tingpng或imageoptim等。经常png会有一些空白边距,这些部分也可以删除          掉,通过代码或xml来实现边距。

      小的icon也可以使用svg格式。一些特定效果也可以通过XML自定义实现。新手常常有个误区,就是做.9图片的原图依旧很              大,   既然已经让程序帮我们拉伸了,原图实际上可以保持很小的体积。

     经常在适配屏幕时,开发会使用多套图片。实际上大部分时候一套图片就可以搞定了,系统会自动帮我们处理图片缩放。

     而在适配不同API时,打包过程也会自动生成多个目录。适当选择最低API格式有好处的,更高版本意味着开发效率更高,同       时     兼容设备变少,需要同业务一起考虑。

   打包过程也会生成一个resource.arsc文件,里面是资源ID的映射关系。这个部分也可以通过混淆资源id来优化,可以有效减少     体积。

   最后同样的,不需要的资源一定要删掉。同样使用lint工具可以帮我们自动删除。模块化也需要当心不同模块出现同样的图片。

 

 

 

你可能感兴趣的:(Android apk 体积优化)