Android 保活措施你会了吗?( 二 )


3.2.6 利用账号同步机制Android 系统的账号同步机制会定期同步账号进行,该方案目的在于利用同步机制进行进程的拉活 。添加账号和设置同步周期的代码即可,谷歌商店会查这种保活方案,后果不知,建议慎用
3.2.7 利用Native进程拉活利用 linux 中的 fork 机制创建 Native 进程,在 Native 进程中监控主进程的存活,当主进程挂掉后,在 Native 进程中立即对主进程进行拉活 。
感知主进程死亡:在主进程中创建一个监控文件,并且在主进程中持有文件锁 。在拉活进程启动后申请文件锁将会被堵塞,一旦可以成功获取到锁,说明主进程挂掉,即可进行拉活 。
拉活主进程:通过 Native 进程拉活主进程的部分代码如下,即通过 am 命令进行拉活 。通过指定“–include-stopped-packages”参数来拉活主进程处于 forestop 状态的情况 。
但是 Android5.0 以上手机 会依次杀死所有进程,也会将 Native 进程杀死
3.2.8 利用双进程拉活启动两个Service A和B,处于不同进程,然后在A的 onStartCommand 中绑定 B,B也在A的 onStartCommand 中绑定A,通过 ServiceConnection 的回调 onServiceDisconnected,当绑定断开时,说明另一个进程死亡,于是重新启动死亡的进程(Service),6.0之后保活效果也开始有限,与Natvie进程遇到的问题相似,只有在依次杀死进程的间隔中,有几率拉活
3.3 其他拉活方式3.3.1 利用系统官方的服务,或者三方服务

  1. 国外可以使用 Firebase 的云端推送
  2. 国内可以使用极光推送等服务
主要还是依靠,自己应用与其他应用使用相同SDK,然后相同的SDK里面内置了相互唤醒功能,具体保活的效果也是依赖三方SDK的能力




推荐阅读