一种安卓系统下的应用进程保活系统及方法与流程

文档序号:17695274发布日期:2019-05-17 21:26阅读:918来源:国知局
一种安卓系统下的应用进程保活系统及方法与流程

本发明涉及应用程序保活技术领域,具体涉及一种安卓系统下的应用进程保活系统及方法。



背景技术:

目前市场上主流的androidapp保活方式主要通过如下方案实现:

①监听广播方式

通过监听一些全局的静态广播,比如开机广播、解锁屏广播、网络状态广播等,来启动应用的后台服务。目前,在高版本的android系统中已经失效,因为高版本的android系统规定应用必须在系统开机后运行一次才能监听这些系统广播,一般而言,应用被系统杀死后,基本无法接收系统广播。

②提高service的优先级

以前提高service优先级方法很多,比如onstartcommand返回start_sticky使系统内存足够的时候service能够自动启动、弹出通知、配置service的优先级等,这些方式只能在一定程度上缓解service被立马回收,但只要用户一键清理或者系统回收照样无效。

③全局定时器

还有一种方法就是在设置一种全局定时器,定时检测启动后台服务,但这种方法目前也已经无效,因为应用只要被系统杀死,全局定时器最后也只成了摆设。

④应用中的双service拉起

经过测试,只要当前应用被杀,任何后台service都无法运行,也无法自行启动。

⑤应用中的双进程拉起

这种方式就是传说中的使用ndk在底层fork出一个子进程,来实现与父进程之间的互拉。在android4.x还是非常有效的,但是高版本的android系统的系统回收策略已经改成进程组的形式了,如果系统要回收一个应用,必然会杀死同属于一个进程组的所有进程,因此最后导致双进程无法拉起。

⑥厂家白名单

通过厂家设置自家手机的白名单,可以使白名单里的app不会轻易被系统回收,但是,软件开发者在进行app开发的时候,不可能每开发一款app,就和多达数十家手机制造商进行沟通协商,将其app加入到厂家白名单中。该方式难于实现。

此外,安卓系统随着版本的升高,系统回收策略和开放权限的升级修改,就会导致针对以前低版本的保活方案在高版本上失效,故现有保活技术不能适用于高版本的安卓系统上。



技术实现要素:

为了解决克服现有保活技术存在的缺陷以及局限性,本发明提供了一种安卓系统下的应用进程保活系统及方法,能够很好地适用于高版本的安卓系统中,且不会随着系统版本升级导致使用受限。

本发明通过下述技术方案实现:

一种安卓系统下的应用进程保活系统,包括前台服务启动模块、“1像素”保活模块、保活监测模块和任务调度启动模块;其中,所述前台服务启动模块用于将安卓系统中的服务置为前台;所述“1像素”保活模块用于对所述前台服务进行保活;所述保活监测模块用于监测所述“1像素”保活模块的保活情况;所述任务调度启动模块根据所述保活情况进行该服务的应用进程启动。

优选的,所述“1像素”保活模块还包括:“1像素”构建模块、监听模块、以及唤醒模块;所述“1像素”构建模块用于为所述前台服务设置“1像素”界面的窗口对象并设置其相关属性;所述监听模块用于通过动态注册来监听锁屏和解锁广播,并通知唤醒模块;所述唤醒模块用于根据广播情况来唤醒“1像素”界面以实现所述前台服务的保活。

优选的,所述保活监测模块监测到该服务能够保活,则通知所述任务调度启动模块;所述保活监测模块监测到该服务未能保活,则循环播放一段无声音频之后通知所述任务调度启动模块。

优选的,所述任务调度启动模块用于启动任务调度器来实现该服务的应用进程启动。

另一方面,本发明还提出了一种安卓系统下的应用进程保活方法,包括以下步骤:

步骤一、将服务设置为前台模式;

步骤二、对步骤一的前台服务进行“1像素”保活;

步骤三、监测步骤二的保活情况,并根据所述保活情况进行所述服务的应用进程启动。

优选的,所步骤二具体包括:

步骤2.1,为所述前台服务设置“1像素”界面的窗口对象并设置其相关属性;

步骤2.2,通过动态注册来监听锁屏和解锁广播;

步骤2.3,根据步骤2.2监听的广播情况来唤醒“1像素”界面以实现所述前台服务的保活。

优选的,所述步骤三具体包括:如果监测到该服务能够保活,则直接进行所述服务的应用进程启动;否则循环播放一段无声音频之后进行所述服务的应用进程启动。

优选的,所述步骤三中使用任务调度器实现所述服务的应用进程的启动。

本发明具有如下的优点和有益效果:

本发明通过监听锁屏广播,制造1像素界面保证应用进程(app)在锁屏后一直处于前台进程,防止被系统回收掉。同时循环播放一段无声音频,来增强保活效果。接着通过启动任务调度器,来实现应用进程(app)被强制关闭后的复活。且本发明可以实现android5.0-7.0系统及其以上版本系统的应用进程(app)保活及复活,不会因为安卓系统升级而应用受限制。本发明实现简单,且提高了保活效果,适用于高版本安卓系统上的应用进程保活。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:

图1为本发明的流程示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。

实施例1

一种安卓系统下的应用进程保活系统,该系统包括前台服务启动模块、“1像素”保活模块、保活监测模块和任务调度启动模块。

其中,所述前台服务启动模块用于将安卓系统中的服务置为前台;通过使用前台启动方法将当前服务置于前台来提高该服务的优先级,以降低其被系统回收的几率。

所述“1像素”保活模块用于对上述前台服务进行保活;所述“1像素”保活模块主要通过监听锁屏广播,制造“1像素”界面来实现保活。由于静态注册广播接收器,无法接收到系统的锁屏和开屏广播,因此必须通过动态注册来监听。通过获取“1像素”界面的窗口对象,然后为其设置相关属性,比如窗体的大小、位置、坐标等,来达到所需的“1像素”界面效果。另一实施例中,所述“1像素”保活模块还包括:“1像素”构建模块、监听模块、以及唤醒模块;所述“1像素”构建模块用于为所述前台服务设置“1像素”界面的窗口对象并设置其相关属性;所述监听模块用于通过动态注册来监听锁屏和解锁广播,并通知唤醒模块;所述唤醒模块用于根据广播情况来唤醒“1像素”界面以实现所述前台服务的保活。

所述保活监测模块用于监测所述“1像素”保活模块的保活情况;所述保活监测模块监测到该服务能够保活,则通知所述任务调度启动模块;所述保活监测模块监测到该服务未能保活,则循环播放一段无声音频之后通知所述任务调度启动模块。其中,循环播放一段无声音频时,当用户点击一键清理最近应用时,应用进程(app)不会被关闭,但是如果用户只选择清理应用进程(app)时,也会被关闭。

所述任务调度启动模块根据所述保活情况进行该服务的应用进程启动。所述任务调度启动模块通过启动任务调度器来实现该服务的应用进程启动。任务调度器是安卓系统中引入的一个能够执行某项任务的服务,它允许应用进程(app)在将来达到一定条件时执行指定的任务。首先在一个实现了任务调度服务的子类的启动调度方法中执行这项任务,使用调度信息的创建方法来设定条件并和实现了调度服务的子类的组件名绑定,然后调用系统服务任务调度器的调度执行方法。这样,即便在执行任务之前应用程序进程被杀,也不会导致任务不会执行。因为系统服务任务调度器会使用绑定服务的方法把实现了调度服务的子类服务启动起来,并执行它的启动调度方法。

实施例2

基于上述实施例提出的安卓系统下的应用进程保活系统,本实施例提出了一种安卓系统下的应用进程保活方法,具体实现方法如下,如图1所示:

步骤一、将服务设置为前台模式;该步骤通过使用前台启动方法将当前服务置于前台来提高该服务的优先级,以降低其被系统回收的几率

步骤二、对步骤一的前台服务进行“1像素”保活;

该步骤主要通过监听锁屏广播,制造“1像素”界面来实现保活。由于静态注册广播接收器,无法接收到系统的锁屏和开屏广播,因此必须通过动态注册来监听。具体包括:

步骤2.1,为所述前台服务设置“1像素”界面的窗口对象并设置其相关属性;

步骤2.2,通过动态注册来监听锁屏和解锁广播;

步骤2.3,根据步骤2.2监听的广播情况来唤醒“1像素”界面以实现所述前台服务的保活。

步骤三、监测步骤二的保活情况,并根据所述保活情况进行所述服务的应用进程启动;如果监测到该服务能够保活,则直接进行所述服务的应用进程启动;否则循环播放一段无声音频之后进行所述服务的应用进程启动。该步骤具体包括:

步骤3.1判断步骤二能否达到保活效果,如果能,则执行步骤3.3,不能则执行步骤3.2

步骤3.2:循环播放一段无声音频,当用户点击一键清理最近应用时,应用进程(app)不会被干掉,但是如果用户只选择清理应用进程(app)时,也会被杀死。

步骤3.3:使用任务调度器实现所述服务的应用进程的启动。任务调度器是安卓系统中引入的一个能够执行某项任务的服务,它允许应用进程(app)在将来达到一定条件时执行指定的任务。首先在一个实现了任务调度服务的子类的启动调度方法中执行这项任务,使用调度信息的创建方法来设定条件并和实现了调度服务的子类的组件名绑定,然后调用系统服务任务调度器的调度执行方法。这样,即便在执行任务之前应用程序进程被杀,也不会导致任务不会执行。因为系统服务任务调度器会使用绑定服务的方法把实现了调度服务的子类服务启动起来,并执行它的启动调度方法。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1