一.应用保活
1. 应用保活
应用保活就是在(a.)用户主动行为或者(b.)系统根据当前系统状态的被动行为 而触发的杀进程动作后,进程设计让自己免于被杀的命运或者被杀后快速重生的把戏
1.对应用来说:保持长久的活跃(即应用进程常驻,不会轻易被杀掉),对自己的业务是非常有益的,简要概括:只要应用活着就可以干很多事情。只要活着,用户才会关注你。
2.对系统来说:如果rom中存活着非常多的没必要的进程,对系统来说是一种灾难。耗电,卡顿,发热。。。等等,这些问题会导致极差的用户体验。
2.常用策略
保活方案一直就层出不穷,APP开发们不断地绞尽脑汁让自己的应用能存活得时间更长, 主要思路有两个:
- 提升进程优先级,降低被杀概率
- 比如监听SCREEN_ON/OFF广播 启动一像素的透明Activity
- 启动空通知,提升fg-service
- 进程被杀后,重新拉起进程
- 监听系统或者第3方广播拉起进程。
- Native fork进程相互监听,监听到父进程被杀,则通过am命令启动进程。force-stop会杀整个进程组,几乎很难生效