在Android

时间:2017-12-06 03:41:25

标签: android google-play-services battery

我正在使用location& android的activity recognition功能。用于实时位置跟踪。目前使用最新的ConnectionLess API。我遇到了以下问题:

启动位置,活动服务后,电池开始耗尽。这种行为非常奇怪,因为整个排水管显示在Google Play Services下。即使应用程序被停止,被杀等,耗尽仍然存在。令我惊讶的是,即使卸载应用程序并且需要几次完整的电池重新充电才能解决问题。

我或多或少地确定我的应用程序已触发排放,因为多个设备已记录此问题,并且这些设备来自不同的制造商和多个Android操作系统版本。在ADB shell中,我发现com.google.android.gms永久占用了126%的CPU,如下所示:

接下来,我列出了该流程下的所有线程。结果如下:

enter image description here

正如所见,一个线程CastSocketMulti正在运行。所有其他线程都在睡觉。除了一些基本信息之外,它们在castSocketMulti上得到了很多,比如在android中投射等等。我们在我们的应用程序中没有使用任何与投射有关的内容。

在杀死过程之后,排水管停止。 注意:我发现了同样的问题here,但是没有答案。

编辑:每次电池耗尽发​​生时,如上所述,com.google.android.gms被列为占据100%+ CPU的第一个进程和castSocketMultiR中该进程的唯一线程状态

更新:我已经打开了一个问题here。 请留下一颗星,以便它可以优先考虑

2 个答案:

答案 0 :(得分:1)

我在OnePlus 3上找到了完全相同的东西。我没有root,也无法杀死进程,但使用adb清除com.google.android.gms的缓存会导致进程崩溃并缓解问题好几天了。

您使用Android Auto还是Android Pay?当我特别使用这两个应用程序时,似乎更频繁地发生。

答案 1 :(得分:0)

好的,谷歌声称已经修复了这个问题,他们已经将问题标记为“已修复”。详情here