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

标签 android cpu-usage android-traceview

几个月来我一直在编写 Android 应用程序。它尚未发布,但已安装在我的设备中。

今天我收到了 Battery Doctor 应用的通知,说我的应用消耗了大量 CPU,尽管我从昨天起就没有使用过它。

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

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

我在这里很无能。我从我的实际代码中看不到任何功能,所以我什至不知道从哪里开始寻找。而且我真的不明白屏幕截图中的这些功能是做什么的,或者它们为什么会出现在那里。

所以我有几个问题,我非常感谢您的帮助:

  • 我的分析结果符合预期吗?或者,如果我不与我的应用交互,这些功能是否应该不会显示?
  • 如果这些功能不应该出现,有人能猜出我的应用程序出了什么问题吗? admob 可能是原因吗?

非常感谢!

最佳答案

我有同样的问题

查看我的 CPU 配置文件。我的应用程序在后台运行,但 CPU 消耗始终在 1-5%,如果长时间继续这样运行会导调用池耗尽。

enter image description here

Admob?

根据@CommonsWare 的建议,我删除了 admob 依赖项并再次运行。 CPU 消耗几乎下降到 0%。查看新个人资料:/image/bMBuL.png (admob SDK 版本:17.1.2)

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

我修好了

如果您使用的是横幅广告,则必须至少在宿主 Activity 的相应事件中调用AdView#pauseAdView#destroy。否则,广告 View 会继续检查 "Active view" ,它会导致 CPU 占用。

关于android - 为什么我的 Android 应用程序在后台使用 CPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27454332/

相关文章:

java - 在项目或库中找不到 list 中引用的类

Windows 10 上的 Python 多处理

javascript - 在网页上显示实时服务器数据

android - 在traceview中Incl CPU Time,Excl CPU Time,Incl Real CPU Time,Excl Real CPU Time是什么意思?

Android,独立版本的traceview被弃用

android -/proc/slabinfo 提供什么信息?

java - Android:正弦波生成

android - 使用 OpenCV 库进行 Android 物体识别

c - 单核 OpenMP

android - 如何开始在 Android 上学习低级编码