专业 靠谱 的软件外包伙伴

您的位置:首页 > 新闻动态 > APP软件开发外包优化,从大小到效率!

APP软件开发外包优化,从大小到效率!

2017-02-17 10:18:06

1

为什么要瘦身了?

相比同类型的竞品,我们的体积稍大了些

1、安装包比较大,可能对用户安装、激活造成较大的障碍

2、期望能通过瘦身,降下APK的体积

 

2

可能优化的点在哪?

 

没有急于动手去优化,分析了理论上,可能优化的点

1、减少切片,大图,及背景图

2、图片压缩

3、采用压缩率更高的webp图片格式,代替当前的png格式

4、清理不需要的布局文件,XML格式资源文件

5、删除一些用户量极少,“无意义”的功能

6、检查第三方包,把不需要的组件、图片之类的删除或替换

7、降低so库的体积

8、把部分页面做成H5,客户端删除这部分功能

9、自查代码,尤其是逻辑相似的部分。删除冗余代码

10、降低插件体积

 

3

协调各Team

1、UE团队,尽量不要提供大的切图及背景图。

2、产品团队,精简一些功能,删除一些“无意义功能”,删除的很有限,哪怕有0.0001,也要争取。

3、其他团队,推动。尤其是so库,能否想办法,降低体积。

4、引入webp格式:部分rom上不支持,作罢。

5、资源混淆,

6、H5团队,H5页面,可行。

7、插件体积,能否支持so也插件化。

 

4

来吧,开刀

 

1、lint使用

     采用lint工具,删除了大量无用的资源。有一定作用。Android studio集成了lint工具,检测“unused resoure“及unused declaration等。这里我们使用lint检测了无用的资源文件。

2、其他团队so库的体积减少,作用明显著

3、代码冗余部分:效果非常有限

4、使用图片压缩工具,有一定作用

    Google推荐图片压缩工具:https://developers.google.com/speed/docs/insights/OptimizeImages,市面上有许多工具可用来对JPEG和PNG文件执行进一步的无损压缩,且不会对图片质量造成任何影响。对于JPEG文件,我们建议您使用jpegtran或jpegoptim(仅适用于Linux;使用--strip-all选项运行)。对于PNG文件,我们建议使用OptiPNG或PNGOUT。

5、H5页面,作用明显

6、支持插件 so,插件支持网络加载so及更新原则, 作用明显

7、jar包资源混淆

 

5

还可优化的点,为0.0001而努力

接下来还可优化的点:

1、AndResGuard进行压缩

AndResGuard介绍:

微信资源压缩打包,主要为了混淆资源ID长度(例如将res/drawable/welcome.png混淆为r/s/a.png),同时利用7z深度压缩,大大减少了安装包体积,同时也增加了逼格,提升了反破解难度。

详情参考:https://github.com/shwenzhang/AndResGuard 

原理介绍: 

http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=208135658&idx=1&sn=ac9bd6b4927e9e82f9fa14e396183a8f#rd

 

2、TinyPng压缩图片

TinyPng能够在视觉上几乎不影响图片的情况下显著压缩图片体积。

从图中可以看到,压缩3次以后基本上体积就很难再减少了,压缩6次以后体积基本上就不变了,值得高兴的是,即使不停的压缩,图片依然不会失真,所以放心大胆的使劲压缩吧。如下,压缩7次后的对比图:

TinyPng好用的地方:

1、图片压缩后对视觉影响不大,但体积显著减小

2、可以批量压缩

3、压缩后文件名与原文件名相同,可以直接替换,尤其是批量压缩的时候

4、可以反复压缩6-7次,而不用担心失真

5、简单有效


  上一篇   [返回首页] [打印] [返回上页]   下一篇