Android MarsDaemon实现进程及Service常驻
Posted LeBron_Six
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常驻的主要内容,如果未能解决你的问题,请参考以下文章