MarsDaemon 基本功能
It is a lite library, you can make your project depend it easily, and your project will be UNDEAD不會被殺死.
support to keep alive from Android_API 9 to Android_API 23
support to keep alive in most of devices各種機型(contains Sumsung\Huawei\Meizu\Mi\Nexus..)
support to keep alive in FORCE_CLOSE強制關閉 from SystemSettings系統設置 and MEMORY_CLEAN內存清理 from third-part第三方清理工具 apps (such like CleanMaster\360 and so on)
support to keep BOOT_RECEIVER完美自啟動 work well simplely
my Blog in Chinese here:
http://blog.csdn.net/marswin89/article/details/50917098
Version
1.0
Installation 使用步驟
STEP1
make your project depend on LibMarsdaemon, and
regist 2 Service and 2 BroadcastReceiver in your manifests in
2 different process.
<service android:name=".Service1" android:process=":process1"/>
<receiver android:name=".Receiver1" android:process=":process1"/>
<service android:name=".Service2" android:process=":process2"/>
<receiver android:name=".Receiver2" android:process=":process2"/>
But the others is used by Marsdaemon, so DONNOT do anything inside.
STEP2
make your application
extends DaemonApplication and override the method
getDaemonConfigurations(). Return back the confugirations.
@Override
protected DaemonConfigurations getDaemonConfigurations() {
DaemonConfigurations.DaemonConfiguration configuration1 = new DaemonConfigurations.DaemonConfiguration("com.marswin89.marsdaemon.demo:process1", Service1.class.getCanonicalName(), Receiver1.class.getCanonicalName());
DaemonConfigurations.DaemonConfiguration configuration2 = new DaemonConfigurations.DaemonConfiguration("com.marswin89.marsdaemon.demo:process2", Service2.class.getCanonicalName(), Receiver2.class.getCanonicalName());
DaemonConfigurations.DaemonListener listener = new MyDaemonListener();
//return new DaemonConfigurations(configuration1, configuration2);//listener can be null
return new DaemonConfigurations(configuration1, configuration2, listener);
}
see more details in MyApplication1 in Demo
if your application has extends another application, you should
create a DaemonClient and perfrom it in attachBaseContext(), DONOT forget perform super.attachBaseContext() before!
private DaemonClient mDaemonClient;
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
mDaemonClient = new DaemonClient(createDaemonConfigurations());
mDaemonClient.onAttachBaseContext(base);
}
STEP3
Launch the Service once, and try to kill it.
相關分析文章
這是一個輕量級的庫,配置幾行代碼,就可以實現在Android上實現進程常駐,也就是在系統強殺下,以及360獲取root權限下,clean master獲取root權限下都無法殺死進程
支持系統2.3到6.0
支持大部分設備,包括三星,華為,oppo,nexus,魅族等等
可以簡單對開機廣播進行保護
github地址:
原理分析: