我已经分叉了系统消息传递应用程序,它消耗了我的大部分CPU,其他人也报告了这一点。我一生无法确定原因。
我认为排放可能是两件事(由于排放多少):尚未释放的唤醒锁,或正在进行连续计算的服务。
这是我尝试过的:
adb shell dumpsys power
这显示了Wake Locks: size=0,因此我假设这不是唤醒锁问题(应用程序当然使用唤醒锁,但是我没有触及涉及它们的代码)。我还使用了WakeLock Detector这个应用程序,该应用程序也没有显示唤醒锁。
我不知疲倦地搜索了日志,以查找表明无法解决问题的信息。我还检查了正在运行的服务(通过"设置">"应用程序">"正在运行"),并且该应用程序没有正在运行的服务。
有谁知道是什么原因导致这种(巨大的)电池消耗?
编辑:我下载了一个名为"禁用服务"的应用程序,该应用程序使我可以查看应用程序提供的所有服务。我的问题的主要问题是无法复制(也就是说,我不知道如何复制它,并且它似乎是随机发生的)。今天我设法遇到电池耗尽的问题,并尝试禁用服务(对那些感兴趣的用户使用TransactionService),问题立即停止。我认为我不能肯定地说此服务引起了问题,但这是查找的第一位。该代码在此处可用。
您可以发布一些代码或类似代码吗? 您是否使用GPS,互联网(wifi或22g,3g,4g),或者是否有很多线程?
我不希望唤醒锁与CPU使用率有很大关系,除了保持CPU运行以允许某人使用它之外。 您是否在ddms中尝试过监视工具? 亚行外壳中也有top -t -m 10可供使用。
几乎没有任何代码可发布,因为它可以在任何地方。 正如我提到的,它是系统消息传递应用程序(实际上是CM消息传递应用程序)的分支。 我只对UI进行过更改,这些更改与发送/接收消息或唤醒锁无关。 @ChrisStratton谢谢虐待,看看
不知道是什么原因导致了此问题。 开始使用具有不同fork的其他AOSP分支进行构建,并且再也没有看到它。