测试Android性能优化

Android 耗电统计的显示

2016-05-10  本文已影响1616人  wbxjack

原因

公司的项目要过移动测试,需要提供类似手机管家的应用。所以需要把省电管理这块加进去,另外要按照硬件和软件分别显示耗电的排行。

工作量

由于不在直接在Setting里面改动。那么单独在APP中要把setting中电池里面的排行移植过来。Setting中显示这些信息的地方在PowerUsageSummary.java中(继承PreferenceFragment)。而在我们的app中不使用Preference需要使用ExpandableListView来分层显示硬件和软件的电量排行,所以主要的工作量是把电量统计相关的代码移植过来。

主要涉及的类

刷新流程 -- PowerUsageSummary中refreshStats函数

  1. 首先,调用mStatsHelper.refreshStats()来刷新当前的电量统计
  2. 然后mStatsHelper.getUsageList()返回BatterySipper的数组,每个BatterySipper代表一个应用(uid)的消耗的电量信息
  3. 根据BatterySipper的信息生成BatteryEntry产生数据,剩下的就是怎么根据BatteryEntry来显示了。

总结

基本上把上面的逻辑拿出来,放到app中,ExpandableListView配合BaseExpandableListAdapter来完成显示。所以难度不大,是搬砖的活。但是背后的framework中battery相关类和service确实很复杂。看出来谷歌在电量统计上还是做了不少工作。算是有个大概了解了。有机会自己分析一下framework中是怎么统计电量了。
网上搜了几篇不错的文章,如下:
Android BatteryStatsHelper深入理解(and5.1)
Android应用的耗电量统计

上一篇下一篇

猜你喜欢

热点阅读