我想分析我的应用程序的电池使用情况,我的意思是应用程序的各个部分,例如广播接收器、侦听器、服务等。电池使用量。我需要一份详细清单,我想从清单中优化电池使用情况。
方法类似于使用内存分析器(http://android-developers.blogspot.hu/2011/03/memory-analysis-for-android.html)有什么工具吗?我使用了一些来自 PlayStore 的电池跟踪应用程序,但应用程序的全球电池使用量还不够。
我想分析我的应用程序的电池使用情况,我的意思是应用程序的各个部分,例如广播接收器、侦听器、服务等。电池使用量。我需要一份详细清单,我想从清单中优化电池使用情况。
方法类似于使用内存分析器(http://android-developers.blogspot.hu/2011/03/memory-analysis-for-android.html)有什么工具吗?我使用了一些来自 PlayStore 的电池跟踪应用程序,但应用程序的全球电池使用量还不够。
这个问题很老了,但是,我想仍然是相关的。
电池消耗是一个非常大的问题,到目前为止还没有解决,所以只有“努力”的工作和学习才能帮助你。没有公共 API 可以帮助您查看电池,也没有“付费” sdk 可以为您提供电池分析,但是,您可以从运行ADB的电池统计命令中学到很多东西。
从您的终端运行此命令:adb shell dumpsys batterystats > results.txt
文件中要观察的几件事results.txt
:
结果是从您将手机从充电器上拔下时开始的(如果达到 100%)
如果您已完全(或几乎)充电,则电池统计信息将被删除,因此如果您遇到问题并且无法处理统计信息,请不要为设备充满电,直到您可以从计算机运行此命令.
Wake lock *sync*/com.android.contacts/com.whatsapp/WhatsApp: 128ms partial (4 times) realtime
我可以从中了解到 WhatsApp 正在运行 128 毫秒的唤醒锁,这没关系,但是,如果运行时间是几个小时,这将很糟糕,并且会耗尽我的电池。Wifi Lock - 您还可以检查 wifi 是否让您的设备保持运行,如果您看到这些线路,而且时间很长,它应该看起来很可疑。
Wifi Running: 3h 23m (87.0%)
Full Wifi Lock: 2h 3m (91.0%)
Wifi Scan: 1h 54m (79.0%) 44x
检查您的 CPU 时间:例如:
Proc com.android.phone:
CPU: 3h 34m 12s 910ms usr + 7s 250ms krn ; 0ms fg
这意味着,电话应用程序工作了 3 多个小时,这是很多(除非用户一直在说话)
检查你的蓝牙
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小时对于蓝牙来说是很多的。
您的服务运行了多长时间?
Service com.google.location.nearby.direct.service.NearbyDirectService:
Created for: 17m 50s 232ms uptime
Starts: 212, launches: 212
在此文件的末尾,您可以看到设备上运行的所有应用程序的摘要。它非常好,让您了解每个 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
在这个文件中还有很多选项要处理,而且需要一段时间才能弄清楚更多,这是我从研究中学到的。
你试过ATT ARO吗?这是一个非常简洁的工具,可为您的应用程序提供更多可视化诊断。