Android开发分享Android那些事Android优化篇

Android APK瘦身经验总结

2016-04-19  本文已影响3157人  MeloDev

Android APK瘦身经验总结

写在前面:

无论手机的内存有多大, 我们自然都希望一个应用的安装包能越小越好,更小的APK标示着更多地用户愿意去下载和体验。本文借鉴张明云、胡凯等老师的博客,对常规的APK瘦身方法进行归纳和总结并附上资料的链接。如果能对你有所帮助,那真的再好不过了。

零:瘦身的指标

是什么造成了APK越来越大呢? 先来看一张解压之后的APK的目录图:

解压APK之后的目录

应该从哪些方面入手对APK进行瘦身呢?

如果看到这里感觉还没形成相应的概念,没关系,接下来对这些指标进行逐个分析,相信你很快就能明了。

一:剔除冗余代码

二:剔除无用的资源

值得注意的是,Lint 会分析资源文件(比如 /res 文件夹下面的文件) ,但是会跳过 assets 文件 ( /assets 文件夹下面的文件)。事实上 assets 文件是可以通过它们的文件名直接访问的,而不需要通过Java引用或者XML引用。因此,Lint 也不能判定某个 asset 文件在项目中是否有用。这全取决于开发者对这个文件夹的维护了。所以你要去人工排查一下assets文件夹下有没有无用的资源,如果有就移除它。

三:对资源文件进行取舍

其实这步操作更多的针对是屏幕适配的知识,曾经听说一个开发者对Android所有屏幕密度下的文件夹都提供了一套图片资源(ldpi, mdpi, tvdpi, hdpi, xhdpi, xxhdpi and xxxhdpi),这是非常不理智的行为,虽然Android支持这么多的屏幕密度,但是不代表你需要为每一个都提供一套资源,下面对资源取舍的一些建议

四:对图片资源进行优化

好了终于来到本篇博客的重头戏,其实上对一个APK大小的优化更多的就是对图片资源的一些处理技巧,我们应该在不降低图片的显示效果、保证APK显示效果的前提下压缩图片文件的大小。

webP

有关webP的简介

WEBP 是google推出的意图改变web图片JPG、PNG、GIF三分天下局势的一种图片格式。它不仅支持无损或有损压缩、alpha通道,还支持动画演示。在同画质的情况下,webp格式图片占用体积相较于jpg图片大约减少40%,相较于无损png图片大约减少30%。具不完全统计,互联网流量中60%都产生于图片,如果能用上webp格式,网站的访问速度将会大大提升。

不过android 4.0+才原生支持webp, 但是我们的app是兼容2.3+,所以4.0以下的设备将无法看到图片。但是引入兼容的SO文件,APK也会变大,这时候自己做个取舍吧!

写在最后:

其实还有一些给APK瘦身的技巧和细节,并没有一一列举出,而且有些新的优化技巧涉及到一些兼容性的问题,大家多查阅资料就能明白了。

上一篇 下一篇

猜你喜欢

热点阅读