码迷,mamicode.com
首页 > 移动开发 > 详细

Android MarsDaemon实现进程及Service常驻

时间:2017-08-18 21:28:59      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:pad   核心   android系统   童鞋   and   ...   receiver   man   有意思   

前段时间。就讨论过关于怎样让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常驻

标签:pad   核心   android系统   童鞋   and   ...   receiver   man   有意思   

原文地址:http://www.cnblogs.com/clnchanpin/p/7392132.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!