gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 14:22:42 25 4
gpt4 key购买 nike

我想分析我的应用程序的电池使用情况,我指的是应用程序的各个部分,例如broadcastreceivers, listeners, services, etc.., 使用了多少电池。我需要一个详细的列表,并且从列表中,我想优化电池使用。

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

最佳答案

这个问题很老了,但我想它仍然有意义。

电池消耗是一个非常大的问题,到目前为止尚未解决,因此只有“努力”工作和学习才能对您有所帮助。没有公共(public) API 可以帮助您查看电池,也没有“付费”sdk 可以为您提供电池分析,但是,您可以通过运行 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 Lock - 您还可以检查 wifi 是否让您的设备保持运行,如果您看到这些线,时间很长,它应该看起来很可疑。

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

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

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

    这意味着电话应用程序工作了 3 个多小时,这已经很多了(除非用户一直在通话)

  6. 检查你的蓝牙

    1002:
    唤醒锁 bluedroid_timer:3m 29s 892ms 部分(158 次)实时
    前景为:8h 1m 2s 834ms
    Activity 时间:8 小时 1 米 3 秒 546 毫秒
    CPU 总时间:u=48m 38s 350ms s=29s 752ms p=204mAh
    Proc com.android.bluetooth:
    CPU: 23m 25s 230ms usr + 22s 520ms krn ; 0毫秒
    211开始
    过程*唤醒锁*:
    CPU: 0ms usr + 2ms krn ; 0毫秒
    APK com.android.bluetooth:
    服务 com.android.bluetooth.gatt.GattService:
    创建时间:1h 13m 52s 667ms upt

    8 小时对于蓝牙来说已经很长了。

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

    服务 com.google.location.nearby.direct.service.NearbyDirectService:
    创建时间:17 米 50 秒 232 毫秒正常运行时间
    开始:212,发射:212

  8. 在此文件的末尾,您有设备上运行的所有应用程序的摘要。它非常好,让您了解每个 apk 消耗了多少时间/cpu/wifi/网络/服务。例如,

    u0a1091:
    移动网络:接收 14.96KB,发送 17.10KB(接收数据包 120,发送 183)
    移动 radio Activity :4m 30s 136ms (10.5%) 18x @ 892 mspp
    Activity 时间:8 小时 1 米 3 秒 546 毫秒
    总 CPU 时间:u=520ms s=210ms p=0.0653mAh
    Proc org.telegram.messenger:
    CPU: 670ms usr + 260ms krn ; 0ms fg

在这个文件中有更多的选项要经过,需要一段时间才能弄清楚,这是我从研究中学到的。

关于android - 如何分析android应用程序的电池使用情况并进行优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15289746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com