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掉進程,發現進程自動重啓。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章