如何分析android应用程序的电池使用情况并对其进行优化?

问题描述:

我想分析我的应用程序的电池使用情况,我的意思是应用程序的各个部分,如 广播接收器,听众,服务等等,电池的使用量。我需要一个详细清单,并从清单中,我想优化电池使用情况。如何分析android应用程序的电池使用情况并对其进行优化?

方法将类似于使用内存分析器(http://android-developers.blogspot.hu/2011/03/memory-analysis-for-android.html) 有没有什么工具可以使用?我使用了PlayStore的一些电池跟踪应用程序,但应用程序的全球电池使用量还不够。

你试过ATT ARO?这是一个非常漂亮的工具,可以为您的应用程序提供更多的可视化诊断。

enter image description here

,这个问题很老了,但是,我想仍然是相关的。

电池消耗是一个非常大的问题,目前尚未解决,所以只有“努力”的工作和学习才能为您提供帮助。没有公共的API可以给你一个有用的电池外观,也没有“付费”的SDK给你分析电池,但是,你可以从ADB运行battery stats命令中学到很多东西。

运行从终端这个命令:adb shell dumpsys batterystats > results.txt

几件事情在results.txt文件观察:

  1. 结果从您从充电器拔掉你的电话的时候开始拍摄(如果达到100%)

  2. 如果您完全(或几乎)充电,电池统计信息将被删除,所以如果您遇到问题,并且无法处理统计信息,请不要完全充电你的设备,直到您可以从计算机运行此命令。

  3. 我们发现使用wakelock是一个巨大的电池消耗。您可以检查结果应用程序有多少时间有唤醒锁。 因此,例如,如果我看到这一行: Wake lock *sync*/com.android.contacts/com.whatsapp/WhatsApp: 128ms partial (4 times) realtime我可以从中了解到WhatsApp运行的唤醒锁定时间为128毫秒,但是,如果运行时间是几小时,这将会很糟糕,并且会导致我的电池。
  4. Wifi锁定 - 您也可以检查wifi是否让您的设备继续运行,并且如果您看到这些线路时间很长,则应该会出现可疑情况。

    Wifi Running: 3h 23m (87.0%) Full Wifi Lock: 2h 3m (91.0%) Wifi Scan: 1h 54m (79.0%) 44x

  5. 检查你的CPU时间:例如:

    Proc com.android.phone: CPU: 3h 34m 12s 910ms usr + 7s 250ms krn ; 0ms fg

    这意味着,手机应用程序工作了3个多小时,这是很多(除非用户是全部都在说)

  6. 看看你的蓝牙

    1002: Wake lock bluedroid_timer: 3m 29s 892ms partial (158 times) realtime Foreground for: 8h 1m 2s 834ms Active for: 8h 1m 3s 546ms Total cpu time: u=48m 38s 350ms s=29s 752ms p=204mAh Proc com.android.bluetooth: CPU: 23m 25s 230ms usr + 22s 520ms krn ; 0ms fg 211 starts Proc *wakelock*: CPU: 0ms usr + 2ms krn ; 0ms fg Apk com.android.bluetooth: Service com.android.bluetooth.gatt.GattService: Created for: 1h 13m 52s 667ms upt

    8小时是蓝牙的很多。

  7. 您的服务运行了多长时间?

    Service com.google.location.nearby.direct.service.NearbyDirectService: Created for: 17m 50s 232ms uptime Starts: 212, launches: 212

  8. 在这个文件的末尾,你有你的设备上运行的所有应用程序的摘要。它相当不错,并让你了解每个apk消耗多少时间/ cpu/wifi /网络/服务。 例如,

    u0a1091: Mobile network: 14.96KB received, 17.10KB sent (packets 120 received, 183 sent) Mobile radio active: 4m 30s 136ms (10.5%) 18x @ 892 mspp Active for: 8h 1m 3s 546ms Total cpu time: u=520ms s=210ms p=0.0653mAh Proc org.telegram.messenger: CPU: 670ms usr + 260ms krn ; 0ms fg

有很多更多的选择在这个文件中穿过去,它需要一段时间才能找出更多,这是我从我的教训研究。