APP优化Android进阶之旅Android知识

Android性能优化之耗电优化

2017-03-23  本文已影响445人  Jenson_

作为移动设备,电池重要性不言而喻,设备没有电那就真的只能拿来砸核桃了。所以作为开发者的我们,为了给用户带来更好的体验,耗电优化一直是我们撇不开的话题。

1、为什么耗电

屏幕快照 2017-03-23 下午2.51.24.png

通过上图先把用户-电量这一流程抽象出来,设备的耗电根本原因在于对硬件的使用,耗电越严重说明对硬件使用的越频繁。用户对app频繁使用说明了你用户黏性做的好,我们不能左右,所以我们要在app对硬件调用上做优化来达到节省电量的目的。

先看下移动设备元件耗电大户有哪些:


fullsizerender.jpg

2、屏幕

屏幕是耗电最大元件之一,但是用户要和app交互就要点亮屏幕,有人可能会觉得屏幕的明暗是用户自己根据喜好设定的,我们无可奈何。其实不然,在有些时候是可以通过UI的设计来减少屏幕电能消耗的。

在这之前我们先来看下目前常用手机屏幕材质:LCD和LED(OLED)。

优化方案:较暗的颜色比明亮的颜色更节能,所以在很多留白的地方可以考虑使用偏暗的色调,当然这要在不影响用户体验的前提下。

3、无线网络

无线网络主要是WIFI和移动运营商网络,通常情况下使用移动网络要比WIFI耗电要多一些。

这三种状态有一个转换流程:

mobile_radio_state_machine.png

可以看出,三种状态耗电不同,要使耗电最低应该尽量保持状态在空闲或低功率下。从空闲状态转换到高功率状态需要2s,从低功率状态转换到高功率状态需要1.5s。应用中每创建一个网络连接,网络射频都会转到高功率状态,数据传输完毕降回低功率状态,降回过程需要5s,这5s耗电量保持在高功率状态,低功率降回到空闲状态需要12s,期间一直保持低功率状态。所以每次的数据传输都将导致将近20s电量的消耗。

WIFI耗电是受包率(每秒接收和发送的数据包)和网速因素影响的。如果因素良好,即网络良好时,数据传输的很快,所以WIFI的高功率状态维持时间很短。这也就是为什么说移动网络耗电高于WIFI耗电,因为同样的数据大小传输时,移动网络固定状态转换就需要近20s的电量消耗。

通过上面了解网络连接过程,应该心里有了大概的优化建议。

<html>  
  <title> A Sample Page</title> 
  <body> 
    with some sample text 
    <--do more here--> 
  </body> 
</html>

精简后

<html>  <title> A Sample Page</title> <body> with some sample text <--do more here--> </body> </html>
- 3.根据显示大小从服务器获取图片

①请求一个图片时,客户端提供一个分辨率大小,服务器根据分辨率把裁剪缩放后的图片给客户端返回。也可以使用Android端使用Bitmap.Option自行获取缩放的图片
②使用webp图片。

4、CPU

cpu利用率高和cpu的频率高没有必然关系,这取决于cpu调频策略。高利用率和高频率的cpu都会导致高耗电。

Doze模式通过限制应用访问网络及其他一些操作频率,从而减少cpu开销达到省电目的。在6.0系统上未连接电源、屏幕关闭就会进入Doze模式。但是为了不影响应用正常工作,系统还会周期性退出Doze,在退出期间去执行那些被挂起的任务,这个时间窗口称作维护窗口。

5、其他优化

后面的章节会写一些关于电量检测分析工具的使用。

为了耗电优化干的这些活用户感知不到,但是如果不去优化,肆意使用,那用户就很容易感知到了。

上一篇 下一篇

猜你喜欢

热点阅读