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

如何分析android应用程序的电池使用情况并对其进行优化?,android,optimization,battery,measurement,Android,Optimization,Battery,Measurement,我想分析我的应用程序的电池使用情况,我指的是应用程序的各个部分,例如 广播接收机、监听器、服务等,电池使用量。我需要一个详细的列表,从列表中,我想优化电池的使用 方法将类似于使用内存分析器() 有什么工具吗?我使用了PlayStore中的一些电池跟踪应用程序,但该应用程序的全球电池使用量还不够。您尝试过吗?这是一个非常简洁的工具,可以为你的应用程序提供更多的可视化诊断 这个问题已经很老了,但我想还是有意义的 电池消耗是一个非常大的问题,到目前为止还没有解决,所以只有“努力”工作和学习才能帮助你。

我想分析我的应用程序的电池使用情况,我指的是应用程序的各个部分,例如 广播接收机、监听器、服务等,电池使用量。我需要一个详细的列表,从列表中,我想优化电池的使用

方法将类似于使用内存分析器() 有什么工具吗?我使用了PlayStore中的一些电池跟踪应用程序,但该应用程序的全球电池使用量还不够。

您尝试过吗?这是一个非常简洁的工具,可以为你的应用程序提供更多的可视化诊断


这个问题已经很老了,但我想还是有意义的

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

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

results.txt
文件中要注意的几点:

  • 结果取自您从充电器上拔下手机插头的开始时间(如果达到100%)

  • 如果您已完全(或几乎)充电,电池状态将被擦除,因此如果您有问题,并且无法处理这些状态,则在您可以从计算机上运行此命令之前,不要为设备完全充电

  • 我们发现使用是一个巨大的电池消耗。您可以检查结果应用程序有唤醒锁的时间。 例如,如果我看到这一行:
    wakelock*sync*/com.android.contacts/com.whatsapp/whatsapp:128ms部分(4次)实时
    我可以理解whatsapp正在运行一个wakelock 128毫秒,这是正常的,但是,如果运行时间是小时,这将是坏的,并且会耗尽我的电池
  • Wifi锁定-您还可以检查Wifi是否保持设备运行,如果您看到这些线路,并且时间很长,则应显示可疑

    Wifi运行:3小时23米(87.0%)
    全Wifi锁定:2小时3米(91.0%)
    Wifi扫描:1小时54米(79.0%)44倍

  • 检查您的CPU时间:例如:

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

    这意味着,手机应用程序的工作时间超过3个小时,这是非常多的(除非用户一直在说话)

  • 检查你的蓝牙

    1002:
    唤醒锁定bluedroid_计时器:3m 29s 892ms部分(158次)实时
    前景:8h 1m 2s 834ms
    激活时间:8h 1m 3s 546ms
    总cpu时间:u=48m 38s 350ms s=29s 752ms p=204mAh
    Proc com.android.bluetooth:
    CPU:23m 25s 230ms usr+22s 520ms krn;0毫秒fg
    211开始
    进程*唤醒锁*:
    CPU:0ms usr+2ms krn;0毫秒fg
    Apk com.android.bluetooth:
    服务com.android.bluetooth.gatt.gatt服务:
    创建时间:1h 13m 52s 667ms upt

    8小时对于蓝牙来说太多了

  • 您的服务运行了多长时间

    Service com.google.location.near.direct.Service.NearbyDirectService:
    创建时间:17m 50s 232ms正常运行时间
    启动:212,启动:212

  • 在这个文件的末尾,您有一个设备上运行的所有应用程序的摘要。它非常好,让你知道每个apk消耗了多少时间/cpu/wifi/网络/服务。 比如说,

    u0a091:
    移动网络:接收14.96KB,发送17.10KB(接收120个数据包,发送183个数据包)
    活动移动无线电:4m 30s 136ms(10.5%)18x@892 mspp
    激活时间:8h 1m 3s 546ms
    总cpu时间:u=520ms s=210ms p=0.0653mAh
    Proc org.telegrame.messenger:
    CPU:670ms usr+260ms krn;0毫秒fg


  • 在这个文件中有很多选择,需要花一段时间才能弄清楚更多,这是我从研究中学到的

    此工具似乎已被删除。你知道还有别的选择吗?