Android MarsDaemon实现进程及Service常驻

Posted clnchanpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android MarsDaemon实现进程及Service常驻相关的知识,希望对你有一定的参考价值。

前段时间。就讨论过关于怎样让Service常驻于内存而不被杀死,最后的结论就是使用JNI实现守护进程,可是不得不说的是,在没有改动系统源代码的情况下,想真正实现杀不死服务,是一件非常难的事情。眼下除了白名单的方式。也好像没有发现有一款APP能做到无论怎么搞它都能自己主动重新启动...

近期在GitHub上发现了一个比較有意思的轻量级库:MarsDaemon,进行一些简单的配置,就能够实如今android上实现进程常驻,在系统强杀下或360安全卫士等软件下,都无法真正杀死进程。

当然了。在华为的pad上试了一下。手动在程序管理里面停止应用,并未自己主动重新启动。可是通过一些安全卫士的软件kill掉进程之后,还是能够自己主动重新启动的。

先不说这个能不能真正的实现杀不死服务,能做到这一步就已经适用于大部分的APP的需求了,所以还是值得一看的,有兴趣的童鞋还能够去研究一下底层实现过程~

先来回想一下之前关于怎样使用JNI实现守护进程:http://blog.csdn.net/yyh352091626/article/details/50542554

事实上核心思路差点儿相同。就是守护进程。该库支持的Android系统为2.3~6.0,差点儿适用全部的Android手机了。包含三星、华为、魅族、小米、联想等。

MarsDaemon库Demo下载地址:http://download.csdn.net/detail/yyh352091626/9468312

详细实现过程例如以下:

一、在Manifest中配置Service。并创建一个和他同进程的receiver,然后在另外一个进程中创建一个Service和一个Receiver。进程1就是须要常驻的进程。进程2放空即可。

技术分享


二、让我们自己的Application继承DaemonApplication,并重写getDaemonConfigurations进行相关配置。

技术分享

三、假设不想继承DaemonApplication而直接继承系统的Application或自己定义Application的话的话,在onCreate里面进行初始化。例如以下:

技术分享

四、利用安全卫士等清理软件Kill掉进程。发现进程自己主动重新启动。











以上是关于Android MarsDaemon实现进程及Service常驻的主要内容,如果未能解决你的问题,请参考以下文章

安卓android杀不死进程,保护,双进程守护,驻留,Marsdaemon,保活

Android 使用MarsDaemon进程常驻

Android 进程常驻(虽然不可用,但是还是保留下。)

Android 进程常驻----开机广播的简单守护以及总结

Android 进程常驻----开机广播的简单守护以及总结

Android 正确的保活方案,不要掉进保活需求死循环陷进