1. 程式人生 > >Android 程序常駐(0)----MarsDaemon使用說明

Android 程序常駐(0)----MarsDaemon使用說明

這是一個輕量級的庫,配置幾行程式碼,就可以實現在android上實現程序常駐,也就是在系統強殺下,以及360獲取root許可權下,clean master獲取root許可權下都無法殺死程序

支援系統2.3到6.0

支援大部分裝置,包括三星,華為,oppo,nexus,魅族等等

可以簡單對開機廣播進行保護

github地址:

原理分析:

正文:

Marsdaemon配置需要三步:

1、明確自己需要常駐的程序service,建立一個和他同進程的receiver,然後在另外一個程序中建立一個service和一個receiver,並寫在Manifest中。程序名可以自定義

見/MarsDaemon/DemoMarsdaemon/src/main/AndroidManifest.xml


service1是應用中有業務邏輯的需要常駐程序的service,其他三個元件都是額外建立的,裡面不要做任何事情,都是空實現就好了

2、用你的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


3、第三步就是嘗試去殺掉程序