Android技术知识Android进阶之路Android开发

Android应用性能优化指南

2018-11-14  本文已影响34人  Android高级架构探索

对我们技术从业者而言,很多时候时候不是我们不知道怎么做,而是不知道做什么?今天系统的总结自己关于如何对Android应用进行优化的一些经验,共计八个维度.


image.png

1.布局优化

为什么?

Android系统每个16ms发出VSYNC信号,触发对UI的渲染,要想达到界面流畅,必须实现60fps,也就意味着大多数的操作必须在16ms完成.

除了上面界面过于复杂导致渲染不能及时完成之外,还存在过度绘制问题.所谓过度绘制就是某个像素在同一帧的时间内被绘制多次.在多层次的UI界面中,如果不可见的UI也在进行绘制,那么这些重合区域的像素就会被绘制多次,从而浪费大量的CPU和GPU资源.过度绘制也发生在背景重叠的情况下,比如Layout中有自己的背景,同时子View中又有自己的背景.

如何检测?

如何优化?

2.内存优化

为什么?

资源总是有限的,内存同样也是一种资源.在Android当中,过度的/不恰当占用内存资源,会导致应用频繁被杀死,最终也会影响用户的整体体验.任何一名开发者,都应该将节省内存牢记心中.

如何检测?

如何优化?

3.电量优化

为什么?

电量是移动设备非常宝贵的资源,作为一名开发者,有必要为用户着想,减少电量的消耗.调查显示通常只有30%左右的电量是被程序核心的功能所消耗,比如界面渲染,剩下的70%则是被上报数据,位置更新,后台通知所消耗.
注‘Android技术交流群752016839,欢迎大家加入交流,畅谈!本群有免费学习资料视频’

如何检测?

如何优化?

4.网络优化

为什么?

现在App几乎都需要联网操作,做好网络优化一方面可以提高体验,另一方面可以减少流量和电量的损耗.另外,无论是对用户还是网络服务提供者,网络同样是一种资源,任何开发者都不应该假设网络资源是无限制的.

如何检测?

如何优化?

5.启动优化

为什么?

启动优化看起来并不是那么必要,但从心理学角度而言,越快的启动速度往往给用户以性能好,高效可靠的心理暗示,这就很容易让用户对其产生好感,为你后面打动用户留下了余地.

如何检测?

如何优化?

6.体积优化

为什么?

对用户而言,无论是用户空间还是网络,亦或是时间,都是资源.体积优化就是为用户节省资源的重要一环.如果你现在做的是SDK类产品,那么体积优化同样重要.
注‘Android技术交流群752016839,欢迎大家加入交流,畅谈!本群有免费学习资料视频’

如何检测?

如何优化?

7.性能优化

能发挥出100%的能力就不要只发挥其中的50%,这对应用而言并非坏事.同样的价格卖给用户两辆车,我想大多数人会选择性能更好的.

如何检测?

如何优化?

业务优化

除了上述比较通用的优化方案之外,也应该花点时间放在业务优化上.很多时候,迫于时间压迫,当前实现业务的方案并非最优.比如为了支持多张图片上传,很多人直接使用串行操作,尽管这样做容易实现,但是却并非最佳.

由于每个产品的业务并不相同,也就很难有通用的优化方案,这里又两个目标值得思考:

1. Android中图片有四种颜色格式,分别是
image.png

默认的是ARGB_8888,其中ARGB分别代表的是透明度,红色,绿色,蓝色,每个值分别用8位来记录,也就是一个像素会占用4byte,共32位.
而ARGB_4444和以上很类似,但是每个值分别用4位来记录,也就是一个像素会占用2byte,共16位.
RGB_565则分别用5位,6位,5位来记录每个值,不存在透明度,每个像素会占用2byte,共16位.
ALPHA_8:该像素只保存透明度,会占用1byte,共8位.
在实际应用中而言,值推荐使用ARGB_8888以及RGB_565,如果你不需要透明度,那么就选择RGB_565,可以减少一半的内存占用.

上一篇下一篇

猜你喜欢

热点阅读