杀不死的进程

  • 系统广播唤醒应用,比如手机开机,网络切换等
  • 接入第三方SDK唤醒应用,比如接入微信SDK会唤醒微信
  • 免杀白名单,比如360免杀白名单,MIUI系统免杀白名单
  • 全家桶,应用之间互相唤醒,比如百度系,阿里系应用
  • 两个Service互相唤醒(这个就别想了,不靠谱)
  • 使用Timer定时器(一样不靠谱)

如上文所说,无论应用怎么挣扎,当处于不可见进程的情况下随时都有可能被杀死。所以使用前台进程是最有效的方法。但前台进程必须有一个Notifcation显示在通知栏中,有没有办法让应用以前台进程的方式启动同时又不显示Notifcation?方法当然有,就是利用系统漏洞:

  • API<18,启动前台Service时直接传入new Notifcation();
  • API>=18,同时启动两个id相同的前台Service,然后再将后启动的Service做stop处理

目前,QQ,微信,支付宝等知名应用都使用此方案。不过如果应用占用太多内存即使是前台进程也依然会被干掉。

猜你喜欢

转载自blog.csdn.net/shenglong0210/article/details/88533259