2014-03-03 30 views
0

我已经分叉了系统消息传递应用程序,它占用了我大部分的CPU,而其他人也报告了相同的情况。我不能为我的生活确定原因。Android应用程序CPU使用率高,没有服务或唤醒锁

我认为排水可能是两件事情(因为排水量多少):尚未释放的唤醒锁或执行连续计算的服务。

这是我曾尝试:

adb shell dumpsys power

这说明Wake Locks: size=0所以我假设它不是一个激活锁定的问题(应用程序使用wakelocks,当然,但我没碰过,涉及它们的代码)。我还使用了应用程序WakeLock Detector,该应用程序也没有显示唤醒锁。

我已经不知疲倦地搜索了日志,发现某些问题无济于事。我也检查了正在运行的服务(通过设置>应用程序>正在运行),并且没有为应用程序运行服务。

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

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

+0

你可以发表一些代码或类似的东西吗?你使用GPS,互联网(wifi或22g,3g,4g),还是你有很多线程? – Tomas

+0

我不希望唤醒锁与CPU使用率有很大关系,除了让CPU运行*让*让别人使用它。你有没有尝试在ddms监视器工具吗?在adb外壳中还有'top -t -m 10'来玩。 –

+0

没有真正的任何代码发布,因为它可能在任何地方。正如我所提到的,它是系统消息应用程序的一个分支(实际上是CM消息传递应用程序)。我只更改了与发送/接收消息或唤醒锁无关的UI。 @ChrisStratton谢谢,我会给你一看 – user394416

回答

0

不知道曾经造成过这个问题。开始用不同的叉子建立不同的AOSP分支并且没有再次看到它。