移动终端应用程序的保活方法及装置与流程

文档序号:20092304发布日期:2020-03-13 07:06阅读:197来源:国知局
移动终端应用程序的保活方法及装置与流程

本发明涉及通信应用技术领域,特别是涉及一种移动终端应用程序的保活方法及装置。



背景技术:

移动终端的系统有自己的任务管理器,当系统运行内存不足时,系统需要杀掉一些进程(应用)以回收一部分资源来保证系统仍可以保持正常的运行。当sdk(softwaredevelopmentkit,软件开发工具包)所依附的进程被杀掉时,就会导致sdk的功能不能再继续工作。目前,保活应用程序的方法主要包括以下几种:1、提升进程优先级:系统为了保证能长时间保持应用进程,当系统内存不足且到达一个阈值的时候,优先级低的进程将被优先回收。因此提供应用程序进程的优先级,是一种最基本的保活方法;2、利用native进程拉活:通过使用原生即c/c++中开启子进程方法,在子进程中不断轮询,判断父进程是否已被回收,若已被回收,则重新启动父进程;3、经典的一像素保活:当应用程序被切换到后台时,开启一个像素的页面在手机界面上,虽然用户看不见,但是可以使应用程序的进程始终保持在一个较高级别;4、利用系统广播拉活:系统在发生一些特定的事件的时候,会向外发出广播通知,在应用程序内部注册相关广播监听,即可在发生广播事件时拉活对应的应用程序。

现有技术的缺点在于:1)进程优先级限制:进程优先级一般由应用程序本身指定,不能由sdk设置;2)native进程拉活弊端:导致内存开销增多,轮询很耗电,且受系统版本限制,在目前大部分系统中已失效;3)一像素保活限制:sdk不是应用程序,不能左右应用程序本身,因此无法启动一像素方法;4)系统广播拉活弊端:系统广播的时间是不可控制的,无法保证进程被杀掉后能马上重启,且受系统版本影响。



技术实现要素:

本发明实施例提供一种移动终端应用程序的保活方法及装置,以解决现有技术中的以下问题:当系统运行内存不足且应用程序的sdk所依附的进程被杀掉时,就会导致应用程序的功能不能再继续工作。

为解决上述技术问题,本发明实施例采用的第一技术方案如下:

一种移动终端应用程序的保活方法,其包括:当监听到所述移动终端被解锁后,对所述移动终端的应用程序的进行唤醒;当所述应用程序被唤醒后,为每个所述应用程序的sdk建立多线程的代码执行方式;将所述应用程序的sdk对应的全部消耗资源代码放到所述多线程的一个单独的所述线程中。

可选地,所述对所述移动终端的应用程序进行唤醒,包括:采用不同的所述应用程序的sdk进行相互唤醒的方式,对每一个所述应用程序的sdk进行唤醒。

可选地,所述为每个所述应用程序的sdk建立多线程的代码执行方式,包括:为每个所述应用程序的sdk建立按照优先级排列的多线程的代码执行方式。

可选地,所述停止优先级低的所述线程的活动之后,包括:当监听到所述移动终端的剩余运行内存量少于预设内存阈值时,停止优先级低的所述线程的活动;当监听到所述移动终端的剩余运行内存量大于所述预设内存阈值时,恢复之前已经停止活动的优先级低的所述线程的活动。

可选地,所述移动终端应用程序的保活方法还包括:当监听到所述移动终端的剩余运行内存量少于所述预设内存阈值时,释放所述应用程序的sdk对应的目标资源,所述目标资源为不影响所述应用程序的sdk正常运行的资源。

可选地,所述移动终端应用程序的保活方法还包括:当监听到所述移动终端的剩余运行内存量大于所述预设内存阈值时,恢复所述应用程序的部分或全部所述目标资源。

可选地,所述移动终端应用程序的保活方法还包括:在整个所述应用程序的运行过程中,实时降低所述应用程序的sdk的崩溃率。

为解决上述技术问题,本发明实施例采用的第二技术方案如下:

一种移动终端应用程序的保活装置,其包括:程序唤醒模块,用于当监听到所述移动终端被解锁后,对所述移动终端的应用程序的进行唤醒;线程建立模块,用于当所述应用程序被唤醒后,为每个所述应用程序的sdk建立多线程的代码执行方式;资源处理模块,用于将所述应用程序的sdk对应的全部消耗资源代码放到所述多线程的一个单独的所述线程中。

为解决上述技术问题,本发明实施例采用的第三技术方案如下:

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如上述的移动终端应用程序的保活方法。

为解决上述技术问题,本发明实施例采用的第四技术方案如下:

一种计算机设备,其包括处理器、存储器及存储于所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的移动终端应用程序的保活方法。

本发明实施例的有益效果是:区别于现有技术的情况,本发明实施例通过监听到所述移动终端被解锁后,对所述移动终端的应用程序的进行唤醒,且当所述应用程序被唤醒后,为每个所述应用程序的sdk建立多线程的代码执行方式,最后将所述应用程序的sdk对应的全部消耗资源代码放到所述多线程的一个单独的所述线程中,解决了现有技术中的以下问题:当系统运行内存不足且应用程序的sdk所依附的进程被杀掉时,就会导致应用程序的功能不能再继续工作。

附图说明

图1是本发明实施例一的移动终端应用程序的保活方法一实施方式的实施流程图;

图2是本发明实施例二的移动终端应用程序的保活装置一实施方式的部分结构框架图;

图3是本发明实施例三的计算机可读存储介质一实施方式的部分结构框架图;

图4是本发明实施例四的计算机设备一实施方式的部分结构框架图。

具体实施方式

实施例一

请参阅图1,图1是本发明实施例的移动终端应用程序的保活方法的实施流程图,结合图1可以得到,本发明的一种移动终端应用程序的保活方法,包括:

步骤s101:当监听到所述移动终端被解锁后,对所述移动终端的应用程序的进行唤醒。

步骤s102:当所述应用程序被唤醒后,为每个所述应用程序的sdk建立多线程的代码执行方式。线程(thread)是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。一个线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每个线程并行执行不同的任务。

步骤s103:将所述应用程序的sdk对应的全部消耗资源代码放到所述多线程的一个单独的所述线程中,这样做可以在移动终端的系统内存不足时统一进行释放,大大提高了消耗资源的处理效率。

在本实施例中,可选地,所述对所述移动终端的应用程序进行唤醒,包括:

采用不同的所述应用程序的sdk进行相互唤醒的方式,对每一个所述应用程序的sdk进行唤醒,即每个所述应用程序的sdk对其余的应用程序的sdk进行唤醒。可选地,可根据需要将多个sdk相互唤醒的功能集中到一个模块,统一处理唤醒功能,将sdk进程拉活。

在本实施例中,可选地,所述为每个所述应用程序的sdk建立多线程的代码执行方式,包括:

为每个所述应用程序的sdk建立按照优先级排列的多线程的代码执行方式,即每个线程的优先级不同,优先级低的线程在系统内存不足时,会优先被回收,以保证系统内存的剩余量可以支持正在运行的应用程序。

在本实施例中,可选地,所述停止优先级低的所述线程的活动之后,包括:

第一,当监听到所述移动终端的剩余运行内存量少于预设内存阈值时,停止优先级低的所述线程的活动。

第二,当监听到所述移动终端的剩余运行内存量大于所述预设内存阈值时,恢复之前已经停止活动的优先级低的所述线程的活动。

在本实施例中,可选地,所述移动终端应用程序的保活方法还包括:

当监听到所述移动终端的剩余运行内存量少于所述预设内存阈值时,释放所述应用程序的sdk对应的目标资源,所述目标资源为不影响所述应用程序的sdk正常运行的资源。其中,sdk可释放的资源包括图片资源、数据库操作对象、文件操作对象、数组、列表和map对象。

在本实施例中,可选地,所述移动终端应用程序的保活方法还包括:

当监听到所述移动终端的剩余运行内存量大于所述预设内存阈值时,恢复所述应用程序的部分或全部所述目标资源。

在本实施例中,可选地,所述移动终端应用程序的保活方法还包括:

在整个所述应用程序的运行过程中,实时降低所述应用程序的sdk的崩溃率。其中,降低sdk崩溃率的方法包括:

第一,增加线程异常捕获功能。

第二,增加权限判断,如没获取相关权限,则停止进行操作。

第三,适配系统,针对不同的系统使用不同的调用方法。

本发明实施例通过监听到所述移动终端被解锁后,对所述移动终端的应用程序的进行唤醒,且当所述应用程序被唤醒后,为每个所述应用程序的sdk建立多线程的代码执行方式,最后将所述应用程序的sdk对应的全部消耗资源代码放到所述多线程的一个单独的所述线程中,解决了现有技术中的以下问题:当系统运行内存不足且应用程序的sdk所依附的进程被杀掉时,就会导致应用程序的功能不能再继续工作。另外,本发明在系统机制下对应用程序的sdk进行优化,不涉及对系统进行欺瞒的行为,提高了sdk的保活能力,且本发明的保活方法,不依赖第三方sdk,因此sdk自身不会受第三方sdk的影响,提升了sdk的兼容性。

实施例二

请参阅图2,图2是本发明实施例的移动终端应用程序的保活装置的部分结构框架图,结合图2可以得到,本发明的一种移动终端应用程序的保活装置100,包括:

程序唤醒模块110,用于当监听到所述移动终端被解锁后,对所述移动终端的应用程序的进行唤醒。

线程建立模块120,用于当所述应用程序被唤醒后,为每个所述应用程序的sdk建立多线程的代码执行方式。

资源处理模块130,用于将所述应用程序的sdk对应的全部消耗资源代码放到所述多线程的一个单独的所述线程中。

本发明实施例通过监听到所述移动终端被解锁后,对所述移动终端的应用程序的进行唤醒,且当所述应用程序被唤醒后,为每个所述应用程序的sdk建立多线程的代码执行方式,最后将所述应用程序的sdk对应的全部消耗资源代码放到所述多线程的一个单独的所述线程中,解决了现有技术中的以下问题:当系统运行内存不足且应用程序的sdk所依附的进程被杀掉时,就会导致应用程序的功能不能再继续工作。另外,本发明在系统机制下对应用程序的sdk进行优化,不涉及对系统进行欺瞒的行为,提高了sdk的保活能力,且本发明的保活方法,不依赖第三方sdk,因此sdk自身不会受第三方sdk的影响,提升了sdk的兼容性。

实施例三

请参阅图3,参考图3可以看到,本发明实施例的一种计算机可读存储介质10,所述的计算机可读存储介质10,如:rom/ram、磁碟、光盘等,其上存储有计算机程序11,所述计算机程序11被执行时实现如实施例一所述的移动终端应用程序的保活方法。由于该移动终端应用程序的保活方法已经在实施例一进行了详细的说明,在此不再重复说明。

本发明实施例实现的移动终端应用程序的保活方法,通过监听到所述移动终端被解锁后,对所述移动终端的应用程序的进行唤醒,且当所述应用程序被唤醒后,为每个所述应用程序的sdk建立多线程的代码执行方式,最后将所述应用程序的sdk对应的全部消耗资源代码放到所述多线程的一个单独的所述线程中,解决了现有技术中的以下问题:当系统运行内存不足且应用程序的sdk所依附的进程被杀掉时,就会导致应用程序的功能不能再继续工作。另外,本发明在系统机制下对应用程序的sdk进行优化,不涉及对系统进行欺瞒的行为,提高了sdk的保活能力,且本发明的保活方法,不依赖第三方sdk,因此sdk自身不会受第三方sdk的影响,提升了sdk的兼容性。

实施例四

请参阅图4,参考图4可以看到,本发明实施例的一种计算机设备20,其包括处理器21、存储器22及存储于所述存储器22上并可在所述处理器21上运行的计算机程序221,所述处理器21执行所述计算机程序221时实现如实施例一所述的移动终端应用程序的保活方法。由于该移动终端应用程序的保活方法已经在实施例一进行了详细的说明,在此不再重复说明。

本发明实施例实现的移动终端应用程序的保活方法,通过监听到所述移动终端被解锁后,对所述移动终端的应用程序的进行唤醒,且当所述应用程序被唤醒后,为每个所述应用程序的sdk建立多线程的代码执行方式,最后将所述应用程序的sdk对应的全部消耗资源代码放到所述多线程的一个单独的所述线程中,解决了现有技术中的以下问题:当系统运行内存不足且应用程序的sdk所依附的进程被杀掉时,就会导致应用程序的功能不能再继续工作。另外,本发明在系统机制下对应用程序的sdk进行优化,不涉及对系统进行欺瞒的行为,提高了sdk的保活能力,且本发明的保活方法,不依赖第三方sdk,因此sdk自身不会受第三方sdk的影响,提升了sdk的兼容性。

以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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