這是一個輕量級的庫,配置幾行代碼,就能夠實如今android上實現進程常駐,也就是在系統強殺下,以及360獲取root權限下,clean master獲取root權限下都沒法殺死進程java
支持系統2.3到6.0android
支持大部分設備,包括三星,華爲,oppo,nexus,魅族等等git
能夠簡單對開機廣播進行保護github
github地址:app
https://github.com/Marswin/MarsDaemonspa
原理分析:.net
Android 進程常駐(0)----MarsDaemon使用說明
xml
Android 進程常駐(2)----細數利用android系統機制的保活手段
繼承
Android 進程常駐(3)----native保活5.0如下方案推演過程以及代碼詳述
Android 進程常駐(4)----native保活5.0以上方案推演過程以及代碼詳述
Android 進程常駐(5)----開機廣播的簡單守護以及總結
正文:
Marsdaemon配置須要三步:
一、明確本身須要常駐的進程service,建立一個和他同進程的receiver,而後在另一個進程中建立一個service和一個receiver,並寫在Manifest中。進程名能夠自定義
見/MarsDaemon/DemoMarsdaemon/src/main/AndroidManifest.xml
service1是應用中有業務邏輯的須要常駐進程的service,其餘三個組件都是額外建立的,裏面不要作任何事情,都是空實現就行了
二、用你的Application繼承DaemonApplication,而後在回調方法getDaemonConfigurations中返回一個配置,將剛纔註冊的進程名,service類名,receiver類名傳進來。
代碼/MarsDaemon/DemoMarsdaemon/src/main/java/com/marswin89/marsdaemon/demo/MyApplication1
此時若是你想在本身的application裏面複寫attachBaseContext方法的話,發現他已經被寫爲final,由於咱們須要搶時間,因此必須保證進程進入先加載Marsdaemon,若是你想在attchBaseContext中作一些事情的話,能夠複寫attachBaseContextByDaemon方法。
若是你的Application已經繼承了其餘的Application類,那麼能夠參考Appliation2,在Application的attachBaseContext的時候初始化一個DaemonClient,而後調用他的onAttachBaseContext一樣能夠實現,固然了,他一樣須要一個配置來告訴他咱們剛纔在menifest中配的信息
代碼代碼/MarsDaemon/DemoMarsdaemon/src/main/java/com/marswin89/marsdaemon/demo/MyApplication2
三、第三步就是嘗試去殺掉進程