android推送保活实验到结论

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android推送保活实验到结论相关的知识,希望对你有一定的参考价值。

参考技术A (以极光推送为例)

操作:从后台应用列表划除应用
结果:只干掉了UI进程,remote进程没有干掉。
所以推送服务正常运作。
重启手机,推送服务正常运作。
判断是,由于能够捕获到开机监听,其他带有极光SDK的应用做了开机自启动,然后极光SDK再互相启动手机里所有带有极光SDK的服务。
于是自己的应用即使没有做开机自启动推送服务,推送服务也可以正常运作。极光SDK互相拉起。

操作:从后台应用列表划除应用
结果:UI进程,remote进程都被干掉了,所有包名下的服务都被干掉,包括前台服务。干干净净。
开机监听无法检测到。
微信那些主流APP已经在小米白名单里,跟系统进程一样开机就存在了。

操作:从后台应用列表划除应用
结果:UI进程,remote进程都被干掉了,所有包名下的服务都被干掉,包括前台服务。干干净净。
开机监听无法检测到。
微信那些主流APP已经在小米白名单里,跟系统进程一样开机就存在了。

除非能像微信、QQ等大牌应用获取厂商支持,默认添加进白名单,否则其他应用在用户主动杀死应用后(在后台应用列表中,滑动删除应用),都无法存活,包括推送子进程。
当然,像NEXUS,LG,索尼这类不是本土品牌的手机,则可以存活,原因是本土厂商对手机系统做了严格的限制。你懂的,本土应用太过流氓,后台服务,互相保活,开机唤醒等各种骚操作使得手机性能急剧下降,为了提高用户体验,让手机更具性价比,而为之。

在用户没有主动杀死应用的情况下,提高进程的优先级,让应用不被系统主动回收。进程参数oom_score_adj(oom_adj)标记了进程优先级,数字越小优先级越高,越难被系统回收。
前台进程>可见进程>服务进程>后台进程>空进程
如何提高进程优先级可自行google

使用厂商自家的推送服务。
也就是说,你要支持华为用户,那么就接入华为推送;你要支持小米用户,那么就接入小米推送。
信鸽推送可以减少接入多个厂商的工作量,可以了解其SDK文档。(截止目前,信鸽支持的第三方厂商,有华为、小米、魅族;OPPO刚出了自家的推送服务,信鸽还没有;VIVO压根没有自家的推送服务)

以上是关于android推送保活实验到结论的主要内容,如果未能解决你的问题,请参考以下文章

android推送服务,目前哪家相对较好

03.app保活解决方案

android消息推送GCM、XMPP、MQTT三种方案的优劣,越仔细越好,有具体分析更好!

Android--使用JobService实现进程保活

盘点im即时通讯开发中Android后台保活方案

一文读懂Android进程及TCP动态心跳保活