Android apk 体积优化

本文探讨了在Android应用开发中如何合理选择CPU架构的ABI,以平衡兼容性和性能,同时提供了代码和资源优化策略,包括利用webp格式图片、SVG图标和XML自定义效果,以及通过资源ID混淆减少体积。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

  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工具可以帮我们自动删除。模块化也需要当心不同模块出现同样的图片。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值