杀不死的进程

### 杀不死的进程——MarsDaemon在Android中的应用与原理 #### 一、引言 在Android开发中,为了确保应用能够在特定时刻提供服务,例如接收特定的系统广播或维持即时通讯应用中的长连接,有时需要实现进程的“常驻”,即确保进程即使在系统资源紧张时也不会被轻易杀掉。这种需求催生了一系列的技术和工具,其中“MarsDaemon”就是一个轻量级的库,能够帮助开发者实现这一目标。 #### 二、MarsDaemon概述 MarsDaemon是一个开源项目,它通过一系列的策略和技术手段,使得Android应用的进程可以在各种情况下保持运行状态,包括但不限于系统强制杀进程、第三方清理软件如360安全卫士、CleanMaster等获取root权限下的清除操作。该库支持Android 2.3到6.0版本,并兼容多种设备,如三星、华为、OPPO、Nexus、魅族等。其核心优势在于能够有效地保护进程免受外部因素的影响,确保应用功能的连续性。 #### 三、MarsDaemon的工作原理 MarsDaemon的核心思想是利用Android系统的机制和特性,结合一定的技术手段来实现进程的保活。主要包含以下几个方面: 1. **利用系统机制:** Android系统本身提供了多种方式来维持进程的生命力,例如通过BroadcastReceiver、Service等组件的设计来保持应用的活跃度。 2. **Native层保活:** 对于不同版本的Android系统,采取不同的技术方案。对于5.0以下版本,可以通过特定的native层操作来实现更深层次的进程保护;而对于5.0及以上版本,则需要采用更加复杂的机制。 3. **开机广播保护:** 通过设置开机启动广播,确保应用在系统重启后能够自动启动并运行,从而提高进程的存活率。 #### 四、MarsDaemon的配置与使用 MarsDaemon的配置主要包括以下三个步骤: 1. **组件配置:** - 明确需要常驻的进程Service,并创建一个与其同进程的Receiver。 - 在另一个进程中创建一个Service和一个Receiver,并将这些组件的信息写入`AndroidManifest.xml`文件中。例如: ```xml <service android:name=".MyService" /> <receiver android:name=".MyReceiver" /> ``` - 进程名和服务名可以根据实际需求进行自定义。 2. **继承DaemonApplication:** - 将自己的Application类继承自`DaemonApplication`,并在`getDaemonConfigurations`回调方法中返回配置信息,包括进程名、Service类名、Receiver类名等。 - 如果需要在`attachBaseContext`方法中执行某些操作,可以通过重写`attachBaseContextByDaemon`方法实现。 3. **进程测试与验证:** - 配置完成后,需要对进程进行测试,确认在各种极端条件下进程是否能够保持存活状态。 #### 五、细节探讨 - **Service与Receiver的额外创建:** 创建的额外Service和Receiver组件无需包含实际的业务逻辑,只需保证它们的存在即可。 - **Application的继承问题:** 如果开发者的应用已经继承了其他Application类,则可以通过创建一个`DaemonClient`实例并在`attachBaseContext`时调用其方法来完成初始化。 #### 六、结论 MarsDaemon通过简单的配置即可实现Android应用进程的高效保活,这对于提高用户体验、确保关键服务的持续运行具有重要意义。不过需要注意的是,进程保活会带来一定的性能开销,因此在使用时需权衡利弊,并尽可能优化相关设计以减少不必要的资源消耗。此外,随着Android系统的不断升级和完善,开发者还需关注官方政策的变化,确保遵循最新的平台规范。



































剩余64页未读,继续阅读

- 牛牛菲菲2018-08-20没什么卵用啊
- longwen01242016-11-045.0以上还是能够轻易的杀死

- 粉丝: 573
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 单片机信号发生器设计及仿真.doc
- 电子商务专业自评分析报告(专业刨析材料).doc
- 软件工程考试题含答案.doc
- 高中数学-第四章-导数及其应用-4.2-导数的运算-4.2.3-导数的运算法则-湘教版选修2.ppt
- 计算机软件中的插件技术及应用.docx
- 虚拟技术在计算机实验机房建设中的应用.docx
- 关于网络环境下信息技术课堂教学模式的探究.docx
- 计算机网络实验报告.doc
- 职称计算机考试基础知识章节试题及答案.doc
- PLC简单应用(1).doc
- 堆栈队列字符串匹配相关算法实现.doc
- JAVAME大学本科方案设计书天气预报.doc
- PLC在机器人喷涂生产线控制中的应用.doc
- 论社会保险基金财务会计的信息化.docx
- Access2010数据库-模块与VBA程序设计(详解)演示文稿.pptx
- JSP网上拍卖系统设计方案与实现.doc


