Android MarsDaemon实现进程及Service常驻
前段时间。就讨论过关于怎样让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放空即可。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" height="320" alt="">
二、让我们自己的Application继承DaemonApplication,并重写getDaemonConfigurations进行相关配置。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" height="400" alt="">
三、假设不想继承DaemonApplication而直接继承系统的Application或自己定义Application的话的话,在onCreate里面进行初始化。例如以下:
四、利用安全卫士等清理软件Kill掉进程。发现进程自己主动重新启动。
Android MarsDaemon实现进程及Service常驻的更多相关文章
- Android几种Service常驻内存的小思路
老话说的好:躲得了初一,躲只是高三 ! 大多数的Android开发人员遇到的一个问题-怎样保证Service常驻内存. 近期我最终也在项目中务必幸运的遇到了 先来了解一下什么是Service常驻内存. ...
- Android 保持Service不被Kill掉的方法--双Service守护 && Android实现双进程守护
本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context ↳an ...
- 保持Service不被Kill掉的方法--双Service守护 && Android实现双进程守护
本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context ↳an ...
- Android学习笔记_23_服务Service之AIDL和远程服务实现进程通信以及进程间传递自定义类型参数
一.了解AIDL语言: 在Android中, 每个应用程序都有自己的进程,当需要在不同的进程之间传递对象时,该如何实现呢? 显然, Java中是不支持跨进程内存共享的.因此要传递对象, 需要把对象解析 ...
- Android 组件和进程的一些关系
1.Service 如果没有单独指定线程的话,那么和主activity是在同一个线程的,就是主线程,那么也不能够在这个service中做耗时操作,否则一定会中断退出. 2.默认情况下,一个Androi ...
- 【转】Android开发之如何保证Service不被杀掉(broadcast+system/app)
Service简介 1.Service 每个Service必须在manifest中 通过<service>来声明. 可以通过contect.startservice和contect.bin ...
- Android 四大组件之二(Service)
service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务 ...
- Android 开发之如何保证Service不被杀掉(broadcast+system/app)
序言 最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台运行,不管用户作出什么操作,都要保证service不被kill,这可真是一个难题.参考了现今各种定制版的系统和安全厂商牛虻 ...
- Android应用程序进程启动过程的源代码分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址: http://blog.csdn.net/luoshengyang/article/details/6747696 Android 应用程序框架层创 ...
随机推荐
- 怎样把XP系统装到USB里?
怎么样在usb(usb闪存)里面装XP系统? 就是把usb当硬盘用 不买硬盘. U盘肯定装不了系统,装进去了也肯定蓝屏.为什么?因为USB得数据传输太慢,不会超过10M/S的,而你的IDE口或者SAT ...
- 关闭Delphi的RTTI
{$IF CompilerVersion >= 21.0}{$WEAKLINKRTTI ON}{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS( ...
- Linux isql
登录Linux环境,执行 isql -s 命令,进入isql命令页面 进入后页面如下: 选择Query-Language回车,选项可进行数据库操作 进入后,选择要操作的数据库,回车 进行入数据库后的数 ...
- bean validation 技术规范
Bean Validation 技术规范特性概述 张 冠楠 和 陈 志娴2011 年 3 月 24 日发布 WeiboGoogle+用电子邮件发送本页面 2 概述 Bean Validation 规范 ...
- mysql error You must reset your password using ALTER USER statement before executing this statement.
mysql修改密码Your password does not satisfy the current policy requirements 出现这个问题的原因是:密码过于简单.刚安装的mysql的 ...
- 采用redis 主从架构的原因
如果系统的QPS超过10W+,甚至是百万以上的访问,则光是Redis是不够的,但是Redis是整个大型缓存架构中,支撑高并发的架构非常重要的环节. 首先,你的缓存中间件.缓存系统,必须能够支撑起10w ...
- Asp.Net MVC3.0项目部署到Win7 64过程总结
前言 之前一直是通过Visual Studio直接F5来运行自己编写的项目或者小程序,很少通过部署发布到IIS上面,于是自己便在自己的笔记本上进行测试,结果还真是发现了不少问题,于是自己重新通过虚机程 ...
- ImageView和onTouchListener实现,点击查看图片细节
这是来自疯狂android讲义上的例子,其实没啥意思.就是用监听器获取到手指的坐标,然后根据这个坐标开始绘制一个图片.(这里的绘制方式有些问题,所以凑合看看吧.) 首先,还是布局文件(两个ImageV ...
- python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...
- npm ERR! Error extracting ~/.npm/cloudant/1.9.0/package.tgz archive: ENOENT: no such file or directory, open '~/.npm/cloudant/1.9.0/package.tgz'
修改package.json Thanks machines returning the above error when , just and now all the builds are pass ...