使用了几个进程保活方案都有问题:
https://github.com/D-clock/AndroidDaemonService
测试设备 vivo x9 7.1.1;mi3 6.0
-
利用系统漏洞,灰色保活手段(API < 18 和 API >= 18 两种情况)
会在 通知栏显示应用正在后台运行,并且杀掉应用后也收不到消息 -
普通的后台进程
通知栏不会显示,但是杀掉也收不到消息
于是想起友盟的互相唤醒机制:
拉帮结派,黑色保活手段,利用广播唤醒队友
友盟文档:安卓设备状态离线现象剖析
注意其中的一句话:如果你的设备是MIUI系统或其他定制化第三方安卓系统,则可能是应用的自启动默认被禁用了。
现在国内的设备都是定制化第三方安卓系统,也不会默认开启 应用自启动
,测试了一下:
如果打开集成了友盟推送sdk的应用,例如UC浏览器,然后打开自己的应用,设置为应用自启动
,唤起是没问题的。但是默认是关闭的,关闭时是收不到消息的,所以友盟互相唤醒功能基本没什么用…