GMS 服务更新会杀死 android 设备中当前正在运行的进程/服务,这些进程/服务依赖于 GMS

Posted

技术标签:

【中文标题】GMS 服务更新会杀死 android 设备中当前正在运行的进程/服务,这些进程/服务依赖于 GMS【英文标题】:GMS service update kills currently running processes/services in android device, which are dependent on GMS 【发布时间】:2020-10-12 10:20:46 【问题描述】:

我的设备有一项需要 24/7 全天候工作的前台服务。 有时当 gms 更新发生时,它会杀死所有 gms 服务并重新启动它们。

我的服务也在使用 gms(firbase AuthService),所以它也会被杀死并重新启动。

当其他 gms 服务更新时如何停止更新我的服务。 我需要防止我的服务在 gms 更新时不再启动。

这里有一些日志:--

ActivityManager:计划重启崩溃的服务 com.google.android.gms/.chimera.UiIntentOperationService 在 200987ms 08-19 12:23:50.474 3604 3649 I ActivityManager:杀戮 13131:com.google.android.gms/u0a25 (adj 0): 停止 com.google.android.gms 08-19 12:23:50.477 3604 3649 W ActivityManager:计划重启崩溃的服务 com.google.android.gms/com.google.firebase.auth.api.gms.service.FirebaseAuthService 在 120977 毫秒 08-19 12:23:50.478 3604 3649 W ActivityManager: 计划重启崩溃的服务 com.google.android.gms/.chimera.GmsIntentOperationService 在 180976ms 08-19 12:23:50.482 3604 3649 I ActivityManager: 杀戮 13093:com.zebra.devicetrackercloud/u0a184 (adj 0): 停止 com.google.android.gms 08-19 12:23:50.483 3604 3649 W ActivityManager:计划重启崩溃的服务 com.zebra.devicetrackercloud/.TrackingService in 923852ms 08-19 12:23:50.483 3604 3649 W ActivityManager:计划重启 com.zebra.devicetrackercloud/.csp.NGDTCspService 中的崩溃服务 963852ms 08-19 12:23:50.484 3604 3649 W ActivityManager:强制 删除 ActivityRecordcf6c3b3 u0 com.zebra.devi cetrackercloud/.MainActivity t10:应用死机,没有保存状态

谢谢!

【问题讨论】:

"当其他 gms 服务更新时如何停止更新我的服务" -- 停止使用 GMS。想必。 “我的设备有一项需要 24/7 全天候运行的前台服务”——除非您在自定义固件上运行它,否则这是不可能的。最终,即使使用前台服务,Android 也会终止您的进程。 嗨@CommonsWare,感谢您的回复,请看这里几点 1. 我需要使用 GMS(用于 Firebase 身份验证)。 2.我们有自己的AOSP硬件设备。 3. 是否有可能,是否可以在 gms 更新发生时排除我的应用更新(杀死并重新开始)! 我在装有 Android 7.1.2 的 TC51 Zebra 上遇到了同样的问题,@Madhukar 你找到解决这个问题的方法了吗? @AlessandroCaliaro 对此没有直接的解决方案。从 Playstore 应用程序禁用自动更新设置是我找到的唯一解决方案。我的技巧是,一旦发生 IllegalStateException,就捕获异常并再次进行身份验证。 @AlessandroCaliaro 从 Firebase 身份验证 Android SDK 版本 20.0.0(包含在 Firebase Android BoM 版本 26.0.0 中)开始,Firebase 身份验证不再依赖于 Google Play 服务。如果在没有播放服务的情况下进行身份验证,则 GMS 更新不会影响应用程序。 【参考方案1】:

firebase-auth v20.0.0 是第一个不需要 GMS[1] 的 firebase-auth 版本。 看起来在 version7.1.0[2] 中为 firebase-ui 添加了对非 gms 设备的支持。 Cloud Functions、Cloud Firestore 和 Firebase 实时数据库不依赖 GMS。

【讨论】:

以上是关于GMS 服务更新会杀死 android 设备中当前正在运行的进程/服务,这些进程/服务依赖于 GMS的主要内容,如果未能解决你的问题,请参考以下文章

Android 4.3 更新后目标未知

NoClassDefFoundError:com.google.android.gms.common.GooglePlayServicesUtil 在设备上

使用Google Play服务位置API来监听位置服务更新

确定 Android 设备中的 3G/WIFI 无线电状态机当前状态

CTS和GMS是啥,平板电脑GMS认证介绍

Android 在设备处于睡眠状态时获取 GPS 坐标更新(屏幕已关闭)