03.app保活解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了03.app保活解决方案相关的知识,希望对你有一定的参考价值。

参考技术A 最近针对我们项目中app经常收不到推送的问题作了一些处理,增加app的保活管理。我们知道当安卓进程退到后台之后,很容易被系统杀死,这个时候推送消息一般都是收不到的。我也观察了一些比较主流的app,像同花顺,钉钉,甚至是支付宝我都很少在后台收到过消息,尤其是支付宝计步功能老是不准,很有可能就是这种问题导致的

当然没有百分之百可以实现保活的解决方案,即便是从ndk层面去进行,但至少我们要尽一些努力,我采用的是双进程守护+1像素Activity的实现方式

开启两个service,分别在两个进程中运行,启动一个service时,通过aidl的方式将它和另一个service绑定在一起,当其中一个service被杀掉的时候,另一个service中重新将它启动

service1启动绑定service2

service1和service2的链接断开时,说明service2被杀死,这时重新绑定

service2绑定service1的逻辑同上

这样一来,基本上在一定程度上可以保证app常驻内存了,保险起见,我们再加一层保护,创建两个JobService
分别位于上边两个进程中(安卓5.0以上适用),开启一个轮巡任务不断的检查service存活情况,如果不在了,启动它,注意JobService需要权限

监听系统锁屏消息,在屏幕锁定的时候开启一个Activity,这个Activity只有一个像素大小,当屏幕开启的时候再关闭这个Activity,达到app一直位于前台进程的目的,提高进程的优先级,降低系统杀死app的概率,在这个Activity启动时设置app只有一个像素大小,既可以减少占用空间,也可以防止开锁屏期间被用户发现这个奇怪的页面

androidManifest中配置

GuardService1

GuardService2

JobWakeUpService1

JobWakeUpService2

DaemonActivity

AndroidManifest配置

增加一个管理类GuardAppManager一键启动和关闭

开启守护

关闭守护

以上是关于03.app保活解决方案的主要内容,如果未能解决你的问题,请参考以下文章

2018年Android的保活方案效果统计

2018年最新Android的保活方案及效果统计

Android 进程保活

Android 进程保活

2018年Android的保活方案效果统计

2018年Android的保活方案效果统计