文章目录
  • 1. 扯谈
  • 2.方法整理
  • 3.总结
  • 扯谈

    永生,是人类从古至今不断探寻的课题。不少人突然有了巨款,或是临近死亡,想做的事都是环球旅行,体验整个世界,似乎只有这么做才不枉此生。 毕竟生命稍纵即逝,人一辈子能体验的东西太少了,总想将美好的事物从有限变到无穷,殊不知正是因为有限,才格外美好。

    在android系统中,生命周期的概念更是一个颇有禅意的比喻,仿佛这些死物都是有生命的。 一个个活蹦乱跳的activity、service可以随着上帝的指尖,从创造到毁灭,从毁灭到重生,在有限的内存中贪婪的汲取养分,不断进行轮回。 App一旦不小心Out Of Memory,大家各自尘归尘土归土,尘土归尘土。

    扯谈完毕。

    方法整理


    • Service设置成START_STICKY,kill 后会被重启(等待5秒左右),重传Intent,保持与重启前一样。
    • 覆写Service的onDestroy方法
    • 通过startForeground将进程设置为前台进程,做前台服务,优先级和前台应用一个级别​,除非在系统内存非常缺,否则此进程不会被 kill。
    • 双进程守护:让2个进程互相保护,其中一个Service被清理后,另外没被清理的进程可以立即重启进程。
    • 多进程守护:用C编写守护进程(即子进程),循环检查目标进程是否存在,不存在则启动它。 在NDK环境中将1中编写的C代码编译打包成可执行文件(BUILD_EXECUTABLE)。 主进程启动时将守护进程放入私有目录下,赋予可执行权限,启动它即可。
    • 多app互相唤醒
    • 设置闹钟,定时唤醒
    • 前台Service保活:在应用退到后台后,另起一个肉眼难辨的 1 像素页面停留在桌面或通知栏上,让自己保持前台状态,保护自己不被后台清理工具杀死。
    • 系统漏洞流:在已经root的设备下,修改相应的权限文件,将App伪装成系统级的应用(Android4.0系列的一个漏洞,已经确认可行)
    • 联系厂商,加入白名单。

    总结

    对于生态来说,这种行为是不被提倡的。被用户发现,他们就会生气,要弄死这个app。
    不过随着android5.0之后的版本的推出,谷歌对android系统的权限管理方式,应用许可,内存管理等方面都进行了很大的修改,引入了多项安全增强措施,root将变得困难。

    Fork me on GitHub