安卓应用保活方法汇总记录

近来面试常遇到这个问题,  记录一下

参考: http://blog.csdn.net/zhangweiwtmdbf/article/details/52369276

一. 提升进程优先级, 降低被杀死的概率.   ---- 这算是未雨绸缪了

二. 进程被杀死后进行拉活.  ---亡羊补牢


提升进程优先级的办法:  先搞清楚有几种优先级, 分别是: 前台进程, 可见进程, 服务进程, 后台进程, 空进程. 

将service通过调用startForeground()来做到把进程优先级设置为前台进程,


1. 提升进程优先级的方法:

1.1   利用activity提升权限, 通过显示一个只有一像素的页面,  避免在手机锁屏时, 后台进程被系统清除

        还要将activity排除在最近应用列表中,   还要把activity设置为透明.

         据说适用于所有android版本, 这个待验证.

1.2   将后台service与一条通知栏通知绑定在一起,


2.  拉活, 死而复生的办法

2.1 监听各种常见广播: 网络状态变化, 文件系统挂载状态变化, 应用安装卸载广播, 数据线插入,  屏幕亮灭, 锁屏, 等等..

2.2  找到第三方应用的广播,  监听之.    不稳定,

2.3  将 Service 设置为 START_STICKY

2.4  在native层fork子进程, 监听,   并启动.

2.5   利用 JobScheduler 机制拉活   适用于5.0之后的手机

2.6   利用账号同步功能.     ---- 这个需要好好研究账号同步功能,    android N版本开始好像不再有效

2.7 利用系统通知管理权限进行拉活

2.8  利用辅助功能拉活,将应用加入厂商或管理软件白名单。

你可能感兴趣的:(安卓应用保活方法汇总记录)