android推送保活实验到结论

作者: 考特林 | 来源:发表于2018-11-23 11:29 被阅读14次

    尝试记录

    (以极光推送为例)

    1.机型:Nexus 系统:6.0

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

    2.机型:小米 MI 4LTE 系统:6.0.1

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

    3.机型:OPPO A33 系统:5.1.1

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

    判断结果:

    1.上述试验告诉我们什么?

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

    2.应用保活指的是什么?

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

    3.那究竟如何让推送保活?在用户不打开应用的时候就能接受到推送?

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

    相关文章

      网友评论

        本文标题:android推送保活实验到结论

        本文链接:https://www.haomeiwen.com/subject/fgahvftx.html