服务 进程守护 MarsDaemon 简介
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.
@Overrideprotected 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 nullreturn 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;@Overrideprotected 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地址:
原理分析:
本文来自博客园,作者:白乾涛,转载请注明原文链接:https://www.cnblogs.com/baiqiantao/p/6375739.html


浙公网安备 33010602011771号