Android 进程常驻(0)----MarsDaemon使用说明
版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。
這是一個(gè)輕量級的庫,配置幾行代碼,就可以實(shí)現(xiàn)在Android上實(shí)現(xiàn)進(jìn)程常駐,也就是在系統(tǒng)強(qiáng)殺下,以及360獲取root權(quán)限下,clean master獲取root權(quán)限下都無法殺死進(jìn)程
支持系統(tǒng)2.3到6.0
支持大部分設(shè)備,包括三星,華為,oppo,nexus,魅族等等
可以簡單對開機(jī)廣播進(jìn)行保護(hù)
github地址:
https://github.com/Marswin/MarsDaemon
原理分析:
Android 進(jìn)程常駐(0)----MarsDaemon使用說明
Android 進(jìn)程常駐(1)----開篇
Android 進(jìn)程常駐(2)----細(xì)數(shù)利用android系統(tǒng)機(jī)制的?;钍侄?br />
Android 進(jìn)程常駐(3)----native?;?.0以下方案推演過程以及代碼詳述
Android 進(jìn)程常駐(4)----native保活5.0以上方案推演過程以及代碼詳述
Android 進(jìn)程常駐(5)----開機(jī)廣播的簡單守護(hù)以及總結(jié)
正文:
Marsdaemon配置需要三步:
1、明確自己需要常駐的進(jìn)程service,創(chuàng)建一個(gè)和他同進(jìn)程的receiver,然后在另外一個(gè)進(jìn)程中創(chuàng)建一個(gè)service和一個(gè)receiver,并寫在Manifest中。進(jìn)程名可以自定義
見/MarsDaemon/DemoMarsdaemon/src/main/AndroidManifest.xml
service1是應(yīng)用中有業(yè)務(wù)邏輯的需要常駐進(jìn)程的service,其他三個(gè)組件都是額外創(chuàng)建的,里面不要做任何事情,都是空實(shí)現(xiàn)就好了
2、用你的Application繼承DaemonApplication,然后在回調(diào)方法getDaemonConfigurations中返回一個(gè)配置,將剛才注冊的進(jìn)程名,service類名,receiver類名傳進(jìn)來。
代碼/MarsDaemon/DemoMarsdaemon/src/main/Java/com/marswin89/marsdaemon/demo/MyApplication1
此時(shí)如果你想在自己的application里面復(fù)寫attachBaseContext方法的話,發(fā)現(xiàn)他已經(jīng)被寫為final,因?yàn)槲覀冃枰獡寱r(shí) 間,所以必須保證進(jìn)程進(jìn)入先加載Marsdaemon,如果你想在attchBaseContext中做一些事情的話,可以復(fù)寫 attachBaseContextByDaemon方法。
如果你的Application已經(jīng)繼承了其他的Application類,那么可以參考Appliation2,在Application的 attachBaseContext的時(shí)候初始化一個(gè)DaemonClient,然后調(diào)用他的onAttachBaseContext同樣可以實(shí)現(xiàn),當(dāng)然 了,他同樣需要一個(gè)配置來告訴他我們剛才在menifest中配的信息
代碼代碼/MarsDaemon/DemoMarsdaemon/src/main/java/com/marswin89/marsdaemon/demo/MyApplication2
3、第三步就是嘗試去殺掉進(jìn)程
總結(jié)
以上是生活随笔為你收集整理的Android 进程常驻(0)----MarsDaemon使用说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS开启与关闭防火墙
- 下一篇: Android启动过程深入解析【转】