前段时间。就讨论过关于怎样让Service常驻于内存而不被杀死,最后的结论就是使用JNI实现守护进程,可是不得不说的是,在没有改动系统源代码的情况下,想真正实现杀不死服务,是一件非常难的事情。眼下除了白名单的方式。也好像没有发现有一款APP能做到无论怎么搞它都能自己主动重新启动...

近期在GitHub上发现了一个比較有意思的轻量级库:MarsDaemon,进行一些简单的配置,就能够实如今android上实现进程常驻,在系统强杀下或360安全卫士等软件下,都无法真正杀死进程。

当然了。在华为的pad上试了一下。手动在程序管理里面停止应用,并未自己主动重新启动。可是通过一些安全卫士的软件kill掉进程之后,还是能够自己主动重新启动的。

先不说这个能不能真正的实现杀不死服务,能做到这一步就已经适用于大部分的APP的需求了,所以还是值得一看的,有兴趣的童鞋还能够去研究一下底层实现过程~

先来回想一下之前关于怎样使用JNI实现守护进程:http://blog.csdn.net/yyh352091626/article/details/50542554

事实上核心思路差点儿相同。就是守护进程。该库支持的Android系统为2.3~6.0,差点儿适用全部的Android手机了。包含三星、华为、魅族、小米、联想等。

MarsDaemon库Demo下载地址:http://download.csdn.net/detail/yyh352091626/9468312

详细实现过程例如以下:

一、在Manifest中配置Service。并创建一个和他同进程的receiver,然后在另外一个进程中创建一个Service和一个Receiver。进程1就是须要常驻的进程。进程2放空即可。

二、让我们自己的Application继承DaemonApplication,并重写getDaemonConfigurations进行相关配置。

三、假设不想继承DaemonApplication而直接继承系统的Application或自己定义Application的话的话,在onCreate里面进行初始化。例如以下:

四、利用安全卫士等清理软件Kill掉进程。发现进程自己主动重新启动。

转载于:https://www.cnblogs.com/clnchanpin/p/7392132.html

Android MarsDaemon实现进程及Service常驻相关推荐

  1. android 充电模式deamon_Android MarsDaemon实现进程及Service常驻

    前段时间.就讨论过关于怎样让Service常驻于内存而不被杀死,最后的结论就是使用JNI实现守护进程,可是不得不说的是,在没有改动系统源代码的情况下,想真正实现杀不死服务,是一件非常难的事情.眼下除了 ...

  2. Android APP 提高进程服务优先级 常驻内存 服务杀不死

    首先明确,国内定制的系统(小米,华为,OPPO等)都实现了 无论自启或提升进程优先级的策略都能被杀死,而对于用户量大的APP(如微信)和系统级别APP 系统有做白名单;抛开那些定制系统,还是有很多原生 ...

  3. Android 保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护

    本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context  ↳an ...

  4. android进程守护 失效,保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护 1...

    本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ?Android.content.Context ?and ...

  5. 保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护 3

    第二部分: 做过android开发的人应该都知道应用会在系统资源匮乏的情况下被系统杀死!当后台的应用被系统回收之后,如何重新恢复它呢?网上对此问题有很多的讨论.这里先总结一下网上流传的各种解决方案,看 ...

  6. [转] Android开发之如何保证Service不被杀掉(broadcast+system/app)

    转发:原文链接http://blog.csdn.net/mad1989/article/details/22492519 序言 最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台 ...

  7. Android应用程序进程启动过程的源代码分析(1)

    Android应用程序框架层创建的应用程序进程具有两个特点,一是进程的入口函数是ActivityThread.main,二是进程天然支持Binder进程间通信机制:这两个特点都是在进程的初始化过程中实 ...

  8. Android开发之如何保证Service不被杀掉(broadcast+system/app)

    Android开发之如何保证Service不被杀掉(broadcast+system/app) 序言 最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台运行,不管用户作出什么操作 ...

  9. Android之四大组件(AIDL Service的使用)

    跨进程调用Service(AIDL Service) Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信. 在前一篇文章(关于Android中的四大组件(Se ...

最新文章

  1. java中json重复数据结构_怎么将有JSON中有相同值放在一组?
  2. 最新3D GAN可生成三维几何数据了!模型速度提升7倍,英伟达斯坦福出品
  3. 使用Xshell密钥认证机制远程登录Linux
  4. golang中的goto
  5. 在控制台中循环录入字符串,输入q时退出。 然后显示一个新的字符(Python)
  6. Java_输出60的十六进制
  7. 获取弹出的窗口_Win7系统如何获取设置everyone权限的问题
  8. 遇见未来 | 超融合如何兼顾企业的“敏态”和“稳态”的业务需求
  9. 项目管理学习笔记五:项目整体管理
  10. CarSim仿真快速入门(十四)—CarSim-Simulink联合仿真
  11. 如何选择一款好的倾斜摄影相机
  12. 怎么注册tk域名_新.tk域名免费注册教程
  13. 使用STM32进行Flash地址空间的数据读取
  14. 如何新建一个ccs工程文件
  15. 2017,我对自己狠一点,也要对自己好一点
  16. Python 批量给图片添加水印小工具
  17. 首个“中国籍”曲妥珠单抗于欧盟获批上市
  18. 打造铁军团队(王牌军)的核心三点
  19. OpenStack权威技术认证COA简介及全球实考统计数据
  20. PHPOK 5.2.009 发布

热门文章

  1. HDU-2044-一只小蜜蜂
  2. Python 比特币 教程 之一:创建机器人
  3. 为什么“我”只给iOS做了应用?
  4. 如何自己写一个公用的NPM包
  5. ESLint 配置说明
  6. 重大合同实为旧事 数据港信披被上交所问询
  7. SAP常用BASIS技巧整理
  8. GWPY:利用公开的 LIGO 数据进行绘图
  9. AngularJS控制div隐藏或显示-ng-show
  10. 几种开源分词工具的比較