美文网首页
(三十七)进程保活面试问题

(三十七)进程保活面试问题

作者: lkmc2 | 来源:发表于2017-08-25 17:56 被阅读82次

进程保活 :就是想让进程在内存中永远存在,怎么杀都杀不死,就算杀死了也能自动启动。

一、Android进程的优先级

1.前台进程 :处于前台正在与用户进行交互的Activity,或者在前台绑定的Service。

2.可见进程 :可见但不可交互的Activity。

3.服务进程 :在后台开启的Service就是服务进程。

4.后台进程 :当处于前台的Activity,被按下Home键之后,该Activity会变成后台进程,但后台进程不会被立马销毁,系统会根据内存情况进行相应的回收。

5.空进程 :表示没有活跃的组件,只是出于缓存的目的而保留,可被随时收回。

前三个进程在内存足够的情况下是不会被回收的;而后台进程和空进程系统会比较随意地回收。

二、进程的回收策略

1.Low memory killer :通过一些比较复杂的评分机制,对进程进行打分,然后将分数高的进程判定为bad进程,杀死并释放内存。

2.OOM_ODJ :判别进程的优先级,当OOM_ODJ越小的时候,进程的优先级越高,越不会被系统回收。

三、进程保活方案

1.利用系统广播拉活

​ 如开关机、网络连接、SD卡卸载之类的。

缺点 :当进程被系统禁用时无效,无法控制拉活时间。

2.利用系统Service机制拉活

​ 在Service中有一个onStartCommand()方法,如果返回设为START_STICKY,当进程因为内存不足而被系统杀掉之后,在未来的某个时间段内,当系统内存足够用的情况下,系统会尝试创建这个Service。

缺点 :进程短时间内被杀死三次以上,就不能轻易拉活了。进程被root权限杀掉也不能拉活。

3.利用Native进程拉活

​ 利用Linux中的fork机制,创建一个native进程,监控主进程,当主进程被杀死,native进程就可以对主进程进行拉活。

缺点 :在Android 5.0之后失效。

相关文章

  • 第十六周 进程保活

    话题:进程保活 这个问题时常在面试中被问到关键字:Android 进程保活招式大全 参考答案 1.进程保活方案 -...

  • (三十七)进程保活面试问题

    进程保活 :就是想让进程在内存中永远存在,怎么杀都杀不死,就算杀死了也能自动启动。 一、Android进程的优先级...

  • 关于进程保活的两三事——新手升级经验卡

    首先,先搁下几个问题,什么是进程保活?为什么要有进程保活?最后才是进程保活要怎么实现??相信大家会迫不及待跳到最后...

  • 进程保活与拉活

    进程相关知识梳理 Activity 1像素保活 前台服务保活 账户同步拉活 JobScheduler 拉活 双进程...

  • Android进程保活实践总结

    Android进程保活

  • 深度剖析APP保活案例

    这是作者在去年处理的一个关于进程保活的案例 一. 引言 1.1 保活概述 什么是保活?保活就是在用户主动杀进程,或...

  • 关于 Android 进程保活

    关于 Android 进程保活 Android进程保活手段主要分3种: 1:利用不同的app进程使用广播来进...

  • 进程保活方案学习

    进程保活方案 进程保活主要有两个方案 提高进程优先级,降低死亡几率 在进程被杀死后进行拉活 进程为什么会死亡 从L...

  • 进程保活

    https://www.cnblogs.com/bugly/p/5765334.html

  • 进程保活

    https://mp.weixin.qq.com/s/r3-5Y_e_0fq3_7a8kdGWog

网友评论

      本文标题:(三十七)进程保活面试问题

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