为什么我的Android应用程序在后台使用CPU?

时间:2014-12-13 00:45:37

标签: android cpu-usage android-traceview

我已经写了几个月的Android应用了。它尚未发布,但已安装在我的设备中。

今天我从Battery Doctor应用程序收到一条关于我的应用消耗大量CPU的通知,即使我从昨天起就没有使用它。

所以基本上我的应用程序在后台运行,它不应该做任何事情,但它正在使用CPU。

所以我打开了TraceView,并在我的应用程序处于后台时进行了一些分析(在此分析时间内我根本没有与我的应用程序进行交互)这就是我得到的:http://i.imgur.com/PYg6twX.png

我在这里很无能为力。从我的实际代码中我根本看不到任何功能,所以我甚至不知道从哪里开始寻找。我并不真正理解屏幕截图中的功能或者它们出现在那里的原因。

所以我有几个问题,我真的很感激一些帮助:

  • 我的分析结果是否合适?或者,如果我没有与我的应用程序进行交互,那些功能是不应该出现的?
  • 如果这些功能不应该出现,有人可以猜到我的应用程序中可能出现的问题吗?难道撒谎是什么原因?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我有同样的问题

查看我的CPU配置文件。我的应用程序是在后台运行的,但是CPU的总消耗通常为1-5%,如果长时间这样运行会导致电池消耗。

enter image description here

Admob?

按照@CommonsWare的建议,我删除了admob依赖项并再次运行。 CPU消耗几乎减少了0%的时间。查看新的个人资料:https://i.stack.imgur.com/bMBuL.png (admob SDK版本:17.1.2

但这不是解决方案。我检查了他们的示例应用,它的后台没有CPU消耗。

我已修复

如果您使用横幅广告,则必须在主机活动的相应事件中至少调用AdView#pauseAdView#destroy。否则,广告视图会继续检查"Active view",这会导致CPU消耗。