在 Android 上调查电池耗尽问题的步骤

Posted

技术标签:

【中文标题】在 Android 上调查电池耗尽问题的步骤【英文标题】:Steps to investigate battery drain issue on Android 【发布时间】:2014-08-14 09:32:46 【问题描述】:

我现在正在开发一个 android 应用程序,现在它处于测试版。但是,与安装应用程序之前相比,我的一些测试版用户声称他们正在经历电池消耗。

看起来它只会影响一些用户,但我还无法确定原因。

我在这个应用程序中使用 GPS 和 GCM。我已遵循 Android 开发人员文档中的指南(在调用 onStop() 时删除位置客户端)。如果没有网络连接,应用程序将不会尝试从服务器刷新数据。但是,我有一些用户说该应用程序一直处于后台,但该应用程序消耗了超过 10% 的电池。 (!!)

1) 我应该删除与 GCM 关联的 WAKE_LOCK 权限吗?

2) 对于获取位置,我还能做些什么?我只在一些活动开始时调用 getLocation 。没有间隔更新。

3) 我可能错过的任何其他潜在的电池消耗罪魁祸首?

【问题讨论】:

如果不知道应用程序的详细信息,这太宽泛了。你可以考虑优化你的代码,但我倾向于安装一个电池监控应用程序,看看你是否能指出它。谷歌定位服务在 JellyBean 舞台上的电池电量非常大,只有 Kitkat 和定位的“低功耗”模式等选项才开始有所改善。这可能取决于他们使用的设备、覆盖范围、网络定位模式等,以及人类的期望。有些人会因为失去 1% 的电量而吓坏了。真的没有办法回答这个问题。 首先,检查用户是否正确。其次,检查电池监视器应用程序。您还可以尝试单独测试每个组件,看看它们是如何工作的(例如,无需 UI 和计算等所有其他内容的位置确定) 【参考方案1】:

我已确定该问题与 GCM 实施中使用的唤醒锁有关。

设备在收到推送通知后被唤醒后,似乎无法正常返回睡眠状态。

感谢您的回复。我正在发布此内容,希望这对可能遇到相同问题的任何人有所帮助。

【讨论】:

以上是关于在 Android 上调查电池耗尽问题的步骤的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Android 应用程序偶尔会非常快地耗尽电池电量?

我的 Android 应用程序正在耗尽电池电量吗?

Android 调试 -> 电池耗尽

Socket.IO 与服务耗尽电池戏剧性(Android)

Android 定位服务耗尽电池 - 融合定位 API

iPhone 显着位置变化电池耗尽?