浅析性能优化-电量优化工具(Battery Historian)

性能作为app非常重要的指标,自然需要得到重视。这两天简单了解了下电量性能统计工具Battery Historian,让作为小白的我有了些头绪。

一,有那些耗电项?

(1)屏幕。如今的手机分辨率越来越高,进而导致使用时耗电显著增加(可以对比以前老人机和现在大屏手机,续航能力根本没法比)
(2)wifi和蜂窝无线。作为数据报文传输的依赖组件,该组件会持续消耗电能。
(3)CPU。毫无疑问,处理器计算是消耗电能的,大量的计算,大的cpu的使用率甚至会导致机身发烫的现象。
(4)GPS及其他传感器等等。定位能力,传感器都会消耗电。

这些耗电项大家也都比较清楚,难点是怎么形成统计数据,图表去客观的告知开发者定位耗电问题?

二,Battery Historian 电量工具

该工具是google提供用于帮助开发者去分析手机耗电原因及明确优化方向,现在已经是2.0版本了,通过go语言写的,以前1.0版本是通过python执行的(我也没有用过1.0, 需要了解1.0的网上进一步了解)。

1,工具准备

细节集成教程网上都有,我这边就大体说下集成思路。
(1)需要依赖 Go,  Python(执行脚本语言);  Git (github上下载资源)。
(2)Go配置环境变量(设置工作目录,安装目录),后面执行go命令默认下载资源到工作目录中
(3) Go命令执行


     1),下载电量工具

       go GET -u  github.com/golang/protobuf/proto
       go GET -u  github.com/golang/protobuf/proto-gen-go
       go GET -u  github.com/google/battery-historian (下载 google电量工具)

      2),执行电量工具工程的设置

       进入battery-historian目录下,执行go run setup.go  执行当前工程自动配置

      3), 执行成功后,我们就要开始运行我们电量工具啦(当前目录下执行实际脚本)

       go run cmd\battery-historian\battery-historian.go

  (4), 此时启动了服务, 执行 localhost:9999 打开对应服务页面 。(注:需要翻墙才能最终数据加载)

  (5), 工具服务启动完毕了,接下来就是数据源来源

            android系统会产生bugreport文件,记录耗电等信息,我们需要导出该文件  adb bugreport > bugreport.txt 

   
2, 工具简单使用

(1) 总体统计


比较重要指标 screen 屏幕耗电,  cpu 执行,  userspace wakelock 应用唤醒锁, JobScheduler调度器(系统同于调度,类似于alarm,5.0以上存在) ,wifi , mobile  等

(2)系统状态


系统状态统计,包含整体系统当前的状态(包含不同应用的使用信息)

(3),应用状态


统计精确应用,通过他我们就可以知道,我们当前应用做存在哪些service,哪些地方定义了wakelock等等,以及耗电信息。

三, 耗电优化方向


应用最好不要盲加干预系统正常休眠,休眠的话会极大减少耗电。
应用本身减少不必要的后台服务(Service,  GPS) 等等


  休眠状态时支持wakelock去唤醒手机,因此不要频繁的唤醒手机(手机进入休眠本身就是需要时间的),
只有在特别需要的时候才去唤醒。且wakelock一定要用完后释放掉,避免引起不必要的耗电。
 于此同时,对于不重要的事情,Alarm服务也不要频繁定时触发,可以适当的不定时触发(根据手机自身状态调配)。
  使用JobScheduler去分发任务(不同app都使用它去让系统统一调配任务,而不是各自为政,频繁唤醒)








猜你喜欢

转载自blog.csdn.net/u011098381/article/details/79895301