进程保活与拉活

进程相关知识梳理

  1. Activity 1像素保活
  2. 前台服务保活
  3. 账户同步拉活
  4. JobScheduler 拉活
  5. 双进程守护

Activity 1像素保活

原理:通过监听手机息屏、开屏广播,关闭屏幕时,偷偷创建一个1像素的Activity,让应用成为前台进程;打开屏幕时,关闭该Activity。
缺点:存在一个Activity不够干净,同时需要在锁屏后才能提权。

前台 Service 保活

原理:启动一个前台服务,从而拉高整个应用的优先级。

  • API<18,通知图标不会显示
  • API>=18并且API<26,可以启动双服务,绑定同样的ID,然后stop一个服务,通知图标将不显示
  • API>=26后,暂时没有方式能够隐藏通知

账户同步拉活

优点:系统唤醒,比较稳定
缺点:时间不能把控

JobScheduler 拉活

  • JobScheduler允许在特定状态与特定时间间隔周期执行任务。可以利用它的这个特点完成保活的功能,效果即开启一个定时器,与普通定时器不同的是其调度由系统完成。
  • 在某些ROM可能并不能达到需要的效果。

双进程守护

原理:开启两个进程相互绑定,一个进程被杀死后,另一个进程重新启动被杀死的进程。

总结:

  • 没有一种方式是能够保证你的应用一直存活在内存中的,但是能延长时间也很不错了。(应用加入厂商手机白名单最一劳永逸!!!)
  • 系统会优先杀死占用内存多的应用,所以想让自己的应用活的更久,还可以从性能上去优化,让其尽可能少的占用内存。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 自己曾经也在这个问题上伤过脑经,前几日刚好有一个北京的哥们在QQ说在做IM类的项目,问我进程保活如何处理比较恰当,...
    4e70992f13e7阅读 3,817评论 9 158
  • 版权声明:本文为LooperJing原创文章,转载请注明出处! 自己曾经也在这个问题上伤过脑经,前几日刚好有一个北...
    LooperJing阅读 29,766评论 98 481
  • 自己曾经也在这个问题上伤过脑经,前几日刚好有一个北京的哥们在QQ说在做IM类的项目,问我进程保活如何处理比较恰当,...
    Android高级工程师阅读 880评论 0 1
  • 自己曾经也在这个问题上伤过脑经,前几日刚好有一个北京的哥们在QQ说在做IM类的项目,问我进程保活如何处理比较恰当,...
    Android高级开发阅读 1,225评论 0 15
  • Android进程保活主要包括两个方面:提高进程的优先级,降低被杀死的概率在进程被杀死后拉活 1.进程优先级 An...
    hxljy阅读 1,167评论 1 5