【问题标题】:Android app high CPU usage, no services or wakelocksAndroid 应用 CPU 使用率高,无服务或唤醒锁
【发布时间】:2014-03-03 22:46:45
【问题描述】:

我已经分叉了系统消息应用程序,它占用了我的大部分 CPU,其他人也报告了同样的情况。我终其一生都无法确定原因。

我认为引流可能是两件事(因为它正在引流多少):尚未释放的唤醒锁,或正在进行持续计算的服务。

这是我尝试过的:

adb shell dumpsys power

这显示了Wake Locks: size=0,所以我假设这不是唤醒锁问题(应用程序当然使用唤醒锁,但我没有触及涉及它们的代码)。我还使用了应用程序 WakeLock Detector,它也显示我的应用程序没有唤醒锁。

我一直在不知疲倦地搜索日志以寻找表明问题的东西,但无济于事。我还检查了正在运行的服务(通过设置 > 应用程序 > 运行)并且没有为该应用程序运行的服务。

有谁知道导致这种(巨大的)电池消耗的原因是什么?

编辑:我下载了一个名为“禁用服务”的应用程序,它允许我查看应用程序提供的所有服务。我的问题的主要问题是无法复制(也就是说,我不知道如何复制它,而且它似乎是随机发生的)。我今天设法遇到电池耗尽并尝试禁用服务(感兴趣的人为 TransactionService),问题立即停止。我认为我不能肯定地说是这项服务导致了问题,但它是首先要查看的地方。代码可用here

【问题讨论】:

  • 你能发布一些代码或类似的。您使用 GPS、互联网(wifi 或 22g、3g、4g),还是有很多线程?
  • 我不认为唤醒锁与 CPU 使用率有很大关系,除了保持 CPU 运行让某人使用它。你试过ddms里的监控工具了吗?在 adb shell 中还有 top -t -m 10 可以使用。
  • 实际上没有任何代码可以发布,因为它可以在任何地方。正如我所提到的,它是系统消息传递应用程序(实际上是 CM 消息传递应用程序)的一个分支。我只对与发送/接收消息或唤醒锁无关的 UI 进行了更改。 @ChrisStratton 谢谢,我会看看

标签: android cpu battery wakelock


【解决方案1】:

不确定是什么导致了这个问题。开始使用具有不同分支的不同 AOSP 分支进行构建,但再也没有看到过。

【讨论】:

    猜你喜欢
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    相关资源
    最近更新 更多