我正在使用location
& android的activity recognition
功能。用于实时位置跟踪。目前使用最新的ConnectionLess
API。我遇到了以下问题:
启动位置,活动服务后,电池开始耗尽。这种行为非常奇怪,因为整个排水管显示在Google Play Services
下。即使应用程序被停止,被杀等,耗尽仍然存在。令我惊讶的是,即使卸载应用程序并且需要几次完整的电池重新充电才能解决问题。
我或多或少地确定我的应用程序已触发排放,因为多个设备已记录此问题,并且这些设备来自不同的制造商和多个Android操作系统版本。在ADB shell中,我发现com.google.android.gms
永久占用了126%的CPU,如下所示:
接下来,我列出了该流程下的所有线程。结果如下:
正如所见,一个线程CastSocketMulti
正在运行。所有其他线程都在睡觉。除了一些基本信息之外,它们在castSocketMulti
上得到了很多,比如在android中投射等等。我们在我们的应用程序中没有使用任何与投射有关的内容。
在杀死过程之后,排水管停止。 注意:我发现了同样的问题here,但是没有答案。
编辑:每次电池耗尽发生时,如上所述,com.google.android.gms
被列为占据100%+ CPU的第一个进程和castSocketMulti
,R
中该进程的唯一线程状态
更新:我已经打开了一个问题here。 请留下一颗星,以便它可以优先考虑
答案 0 :(得分:1)
我在OnePlus 3上找到了完全相同的东西。我没有root,也无法杀死进程,但使用adb清除com.google.android.gms的缓存会导致进程崩溃并缓解问题好几天了。
您使用Android Auto还是Android Pay?当我特别使用这两个应用程序时,似乎更频繁地发生。
答案 1 :(得分:0)
好的,谷歌声称已经修复了这个问题,他们已经将问题标记为“已修复”。详情here