Android MarsDaemon實現程式及Service常駐

LeBron_Six發表於2016-03-21

前段時間,就討論過關於如何讓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掉程式,發現程式自動重啟。




相關文章