性能优化

Android 性能优化 缩小apk 包

2017-07-06  本文已影响90人  百花鱼藤

一 、包大小分析

在Android Studio工具栏里,打开build–>Analyze APK, 选择要分析的APK包

以看到占用空间的主要是代码、图片、资源和lib和assert文件,主要方向精简代码、压缩图片、去除无用的库、减少asserts里面文件。

二、开启shrinkResources去除无用资源

使用前:

比较前后少了0.8M

三、清理无用资源

在Android Studio工具栏里,打开Refactor–>Remove UnUsed Resources

四、删除无用的语言资源

五、使用tinypng有损压缩

TinyPNG工具只支持上传PNG图片到官网上压缩,然后下载保存,在保持alpha通道的情况下对PNG的压缩可以达到1/3之内,而且用肉眼基本上分辨不出压缩的损失.Tinypng的官方网站:http://tinypng.com/

六、使用jpg格式

如果对于非透明的大图,jpg将会比png的大小有显著的优势,虽然不是绝对的,但是通常会减小到一半都不止。在启动页,活动页等之类的大图展示区采用jpg将是非常明智的选择。

七、覆盖第三库里的大图

有些第三库里引用了一些大图但是实际上并不会被我们用到,就可以考虑用1x1的透明图片覆盖。你可能会有点不舒服,因为你的drawable下竟然包含了一些莫名其妙的名称的1x1图片…

八、精简so

删除armable-v7包下的so

基本上armable的so也是兼容armable-v7的,armable-v7a的库会对图形渲染方面有很大的改进,如果没有这方面的要求,可以精简。

这里不排除有极少数设备会Crash,可能和不同的so有一定的关系,请大家务必测试周全后再发布。

删除x86包下的so

与第十条不同的是,x86包下的so在x86型号的手机是需要的,如果产品没用这方面的要求也可以精简。

建议实际工作的配置是只保留armable、armable-x86下的so文件,算是一个折中的方案。

九、使用shape背景

特别是在扁平化盛行的当下,很多纯色的渐变的圆角的图片都可以用shape实现,代码灵活可控,省去了大量的背景图片

十 、使用着色方案

相信你的工程里也有很多selector文件,也有很多相似的图片只是颜色不同,通过着色方案我们能大大减轻这样的工作量,减少这样的文件

mutate未起作用,所以加载了两遍

十一、避免重复库

避免重复库看上去是理所当然的,但是秘密总是藏的很深,一定要当心你引用的第三方库又引用了哪个第三方库,这就很容易出现功能重复的库了,比如使用了两个图片加载库:Glide和Picasso。

十二、清理第三方库和冗余代码

    版本迭代过程中,因为删减功能经常有冗余代码和第三方库留下,这或多或少都会增加包体,这种情况没有捷径,只能每个文件查找,这是苦力活。还有要查看第三方库有没可能精简,比如谷歌分基础、广告和分析包,网络库、supportv4等,这个就具体情况具体分析。

十三 、使用 微信 打包工具 AndResGuard

     执行  gradlew resguardRelease 命令后比较 

     前后相差1.5M,效果还是很明显的。

上一篇下一篇

猜你喜欢

热点阅读