CN114518905A - 一种应用冷启动的方法、装置、计算机设备和存储介质 - Google Patents
一种应用冷启动的方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114518905A CN114518905A CN202210074033.5A CN202210074033A CN114518905A CN 114518905 A CN114518905 A CN 114518905A CN 202210074033 A CN202210074033 A CN 202210074033A CN 114518905 A CN114518905 A CN 114518905A
- Authority
- CN
- China
- Prior art keywords
- target
- processing
- application
- list
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 381
- 230000008569 process Effects 0.000 claims abstract description 338
- 238000012545 processing Methods 0.000 claims abstract description 214
- 230000015654 memory Effects 0.000 claims abstract description 120
- 238000011084 recovery Methods 0.000 claims abstract description 38
- 238000007906 compression Methods 0.000 claims abstract description 23
- 230000006835 compression Effects 0.000 claims abstract description 23
- 238000005192 partition Methods 0.000 claims description 10
- 238000004064 recycling Methods 0.000 claims description 8
- 238000004886 process control Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种应用冷启动的方法、装置、计算机设备和存储介质,属于计算机技术领域。该方法包括:通过响应于对应用列表的目标应用进行应用清除处理的指令,对目标应用的实例进行清除,并且在进程列表中保留目标应用对应的目标进程;对目标进程进行内存压缩回收处理,得到目标处理进程;根据预设的LRU算法规则确定目标进程列表,目标进程列表包括目标处理进程;响应于针对目标应用的应用启动命令,根据目标进程列表中目标应用对应的目标处理进程执行应用启动命令。本申请通过保留目标应用的目标进程并对其进行内存压缩回收处理,能够有效地减少对目标进程对内存空间的占用,加速了目标应用的启动性能,提升了用户体验。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用冷启动的方法、装置、计算机设备和存储介质。
背景技术
Android***中原生的后台应用会占用内存和CPU资源,如果存留数量过多就会直接影响用户前台的操作体验,所以在Android***中都会在最近应用列表中清除掉后台应用来保障***的流畅性。但该方法会导致用户再次打开该应用时应用处于冷启动状态,同时,由于应用处于冷启动时性能较差,相比温启动、热启动需要新建进程并读取加载IO等资源,因此,启动该应用需等待较长的启动时间,从而导致用户的体验不佳。
发明内容
本申请实施例的主要目的在于提出一种应用冷启动的方法、装置、计算机设备和存储介质,通过保留应用的进程并对其进行内存压缩回收处理,加速了应用的启动性能,提升了用户体验。
为实现上述目的,本申请实施例的第一方面提出了一种应用冷启动的方法,包括:
响应于对应用列表的目标应用进行应用清除处理的指令,对所述目标应用的实例进行清除,并且在进程列表中保留所述目标应用对应的目标进程,其中,所述应用列表包括多个应用,所述进程列表包括多个应用进程;
对所述目标进程进行内存压缩回收处理,得到目标处理进程;
根据预设的LRU算法规则确定目标进程列表,所述目标进程列表包括所述目标处理进程;
响应于针对所述目标应用的应用启动命令,根据所述目标进程列表中所述目标应用对应的所述目标处理进程执行所述应用启动命令。
在一些实施例,所述根据预设的LRU算法规则确定目标进程列表,所述目标进程列表包括所述目标处理进程,包括:
获取第一进程列表当前的内存剩余量;
将所述目标处理进程***所述第一进程列表的尾部,得到包括所述目标处理进程的第二进程列表;
根据预设的LRU算法规则和所述第一进程列表当前的内存剩余量对所述第二进程列表进行进程控制处理,得到目标进程列表。
在一些实施例,所述根据预设的LRU算法规则和所述第一进程列表当前的内存剩余量对所述第二进程列表进行进程控制处理,得到目标进程列表,包括:
将所述第二进程列表作为初始的目标进程列表;
根据预设的内存总量和所述第一进程列表当前的内存剩余量确定当前可容纳进程数量;
根据预设的LRU算法规则,当所述目标进程列表的当前进程数量超出所述当前可容纳进程数量,将位于所述目标进程列表的头部的进程进行移除,直至所述当前进程数量小于等于所述当前可容纳进程数量,得到更新的所述目标进程列表。
在一些实施例,所述对所述目标进程进行内存压缩回收处理,得到目标处理进程,包括:
对所述目标进程进行第一内存回收处理,得到第一处理进程;
对运行于内核空间中的所述第一处理进程进行第二内存回收处理,得到目标处理进程。
在一些实施例,所述第一内存回收处理包括无引用对象的资源释放处理和堆内存回收处理,所述对所述目标进程进行第一内存回收处理,得到第一处理进程,包括:
对所述目标进程进行所述无引用对象的资源释放处理,得到第二处理进程;
对所述第二处理进程进行所述堆内存回收处理,得到所述目标进程对应的第一处理进程。
在一些实施例,所述第二内存回收处理包括清除无引用的内存页处理、回收匿名页置换到交换分区处理和回收文件页处理,所述对运行于内核空间中的所述第一处理进程进行第二内存回收处理,得到目标处理进程,包括:
对运行于内核空间中的所述第一处理进程进行所述清除无引用的内存页处理,得到第三处理进程;
对所述第三处理进程进行所述回收匿名页置换到交换分区处理,得到第四处理进程;
对所述第四处理进程进行所述回收文件页处理,得到所述目标进程对应的目标处理进程。
在一些实施例,所述响应于针对所述目标应用的应用启动命令,根据所述目标进程列表中所述目标应用对应的所述目标处理进程执行所述应用启动命令,包括:
响应于所述目标应用的应用启动命令,根据所述目标进程列表中所述目标应用对应的所述目标处理进程执行所述应用启动命令;
将所述目标处理进程再次移动到所述目标进程列表的尾部。
本申请实施例的第二方面提出了一种应用冷启动的装置,包括:
应用处理模块,用于响应于对应用列表的目标应用进行应用清除处理的指令,对所述目标应用的实例进行清除,并且在进程列表中保留所述目标应用对应的目标进程,其中,所述应用列表包括多个应用,所述进程列表包括多个应用进程;
内存压缩回收模块,用于对所述目标进程进行内存压缩回收处理,得到目标处理进程;
进程管理模块,用于根据预设的LRU算法规则确定目标进程列表,所述目标进程列表包括所述目标处理进程;
应用启动模块,用于响应于针对所述目标应用的应用启动命令,根据所述目标进程列表中所述目标应用对应的所述目标处理进程执行所述应用启动命令。
本申请实施例的第三方面提出了一种计算机设备,所述一种计算机设备包括存储器和处理器,其中,所述存储器中存储有程序,所述程序被所述处理器执行时所述处理器用于执行如本申请第一方面实施例任一项所述的一种应用冷启动的方法。
本申请实施例的第四方面提出了一种计算机可读存储介质,所述一种计算机可读存储介质有计算机程序,在所述计算机程序被计算机执行时,所述计算机用于执行如本申请第一方面实施例任一项所述的一种应用冷启动的方法。
本申请实施例提出的一种应用冷启动的方法、装置、计算机设备和存储介质,通过响应于对应用列表的目标应用进行应用清除处理的指令,对目标应用的实例进行清除,为了消除应用再次打开的冷启动,在进程列表中保留目标应用对应的目标进程,其中,应用列表包括多个应用,进程列表包括多个应用进程。为了减少保留的目标进程对内存空间的占用,同时加速目标应用的启动性能,对目标进程进行内存压缩回收处理,得到目标处理进程,并根据预设的LRU算法规则确定目标进程列表,目标进程列表包括该目标处理进程。响应于针对所述目标应用的应用启动命令后,根据目标进程列表中目标应用对应的目标处理进程执行应用启动命令。本申请通过保留目标应用的目标进程并对其进行内存压缩回收处理,加速了目标应用的启动性能,提升了用户体验。
附图说明
图1是本申请实施例提供的一种应用冷启动的方法的流程图;
图2是图1中的步骤S130的流程图;
图3是图2中的步骤S230的流程图;
图4是图1中的步骤S120的流程图;
图5是图4中的步骤S410的流程图;
图6是图4中的步骤S420的流程图;
图7是图1中的步骤S140的流程图;
图8为本申请实施例提供的一种应用冷启动的模块结构框图;
图9是本申请实施例提供的计算机设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
首先,对本申请中涉及的若干名词进行解析:
冷启动(Cold boot),即当启动应用时,后台没有该应用的进程,这时***会重新创建一个新的进程分配给该应用。
LRU算法规则(Least Recently Used,最近最少使用算法规则),常用于页面置换的算法,即为虚拟页式存储管理服务。LRU算法规则的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。
Android***中原生的后台应用会占用内存和CPU资源,如果存留数量过多就会直接影响用户前台的操作体验,所以在Android***中都会在最近应用列表中清除掉后台应用来保障***的流畅性。但该方法会导致用户再次打开该应用时应用处于冷启动状态,同时,由于应用处于冷启动时性能较差,相比温启动、热启动需要新建进程并读取加载IO等资源,因此,启动该应用需等待较长的启动时间,从而导致用户的体验不佳。
基于此,本申请实施例的主要目的在于提出一种应用冷启动的方法、装置、计算机设备和存储介质,能够通过保留应用的进程并对其进行内存压缩回收处理,加速了应用的启动性能,提升了用户体验。
本申请实施例提供的一种应用冷启动的方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机或者智能手表等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式***,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现上述方法的应用等,但并不局限于以上形式。
本申请实施例可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费计算机设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本申请实施例提供一种应用冷启动的方法、装置、计算机设备和存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的一种应用冷启动的方法。
参照图1,根据本申请实施例第一方面实施例的一种应用冷启动的方法,包括但不限于步骤S110至步骤S140。
S110,响应于对应用列表的目标应用进行应用清除处理的指令,对目标应用的实例进行清除,并且在进程列表中保留目标应用对应的目标进程,其中,应用列表包括多个应用,进程列表包括多个应用进程;
S120,对目标进程进行内存压缩回收处理,得到目标处理进程;
S130,根据预设的LRU算法规则确定目标进程列表,目标进程列表包括目标处理进程;
S140,响应于针对目标应用的应用启动命令,根据目标进程列表中目标应用对应的目标处理进程执行应用启动命令。
在步骤S110中,对Android***最近的应用列表进行清除应用时,为了消除应用再次启动时处于冷启动的状态,在响应于对应用列表的目标应用进行应用清除处理的指令时,对执行应用清除处理的指令区分了目标应用对应的的实例(Activity、Service)和目标进程,即对目标应用的实例进行清除,而在进程列表中保留目标应用对应的目标进程,其中,应用列表包括多个应用,进程列表包括多个应用进程。
需要说明的是,目标应用的实例包括Activity Task(活动任务)及后台的Service。Android应用开发时的主要组件包括Activity和Sevice,其中,由于用户所能看到的应用的组件就是Activity,所以Activity Task中的Task表示为实现一个应用功能而负责管理所有用到的Activity实例的栈。后台的Service由于经常作为后台服务,需要始终保持运行,即用于负责处理一些必要的任务。
需要说明的是,本申请的实施例针对Android***全平台,且在具体实施过程中无兼容性问题,能够通过保留目标应用的目标进程并对其进行内存压缩回收处理,有效地减少对目标进程对内存空间的占用,加速了目标应用的启动性能,提升了用户体验。
在一些实施例中,如图2所示,步骤S130具体包括但不限于步骤S210至步骤S230。
S210,获取第一进程列表当前的内存剩余量;
S220,将目标处理进程***第一进程列表的尾部,得到包括目标处理进程的第二进程列表;
S230,根据预设的LRU算法规则和第一进程列表当前的内存剩余量对第二进程列表进行进程控制处理,得到目标进程列表。
在步骤中S210至步骤S230中,首先,获取第一进程列表当前的内存剩余量,由于列表是一种数据项构成的有限序列,即按照一定的线性顺序排列而成的数据项的集合,则将经过内存压缩回收处理后的目标处理进程***第一进程列表的尾部,得到包括目标处理进程的第二进程列表。为了更好地使用***内存且提高用户体验,根据预设的LRU算法规则和第一进程列表当前的内存剩余量对第二进程列表进行进程控制处理,得到目标进程列表。
在一些实施例中,如图3所示,步骤S230具体包括但不限于步骤S310至步骤S330。
S310,将第二进程列表作为初始的目标进程列表;
S320,根据预设的内存总量和第一进程列表当前的内存剩余量确定当前可容纳进程数量;
S330,根据预设的LRU算法规则,当目标进程列表的当前进程数量超出当前可容纳进程数量,将位于目标进程列表的头部的进程进行移除,直至当前进程数量小于等于当前可容纳进程数量,得到更新的目标进程列表。
在步骤S310至步骤S330中,将第二进程列表作为初始的目标进程列表,将目标处理进程***第一进程列表的尾部后,根据预设的内存总量和第一进程列表当前的内存剩余量确定当前可容纳进程数量,从而根据预设的LRU算法规则对第二进程列表进行动态调整,当目标进程列表的当前进程数量超出当前可容纳进程数量时,由于目标进程列表头部的进程与第二进程列表中其他进程相比,被访问的可能性较小,则将位于目标进程列表的头部的进程进行移除,直至当前进程数量小于等于当前可容纳进程数量,得到更新的目标进程列表。
在一些实施例中,如图4所示,步骤S120具体包括但不限于步骤S410至步骤S420。
S410,对目标进程进行第一内存回收处理,得到第一处理进程;
S420,对运行于内核空间中的第一处理进程进行第二内存回收处理,得到目标处理进程。
在步骤S410至步骤S420中,响应于对应用列表的目标应用进行应用清除处理的指令后,对目标应用的实例进行清除,并且在进程列表中保留目标应用对应的目标进程,对于保留缓存下来的目标进程,由于目标应用的活动组件已经被结束掉,则对目标进程进行第一内存回收处理,得到第一处理进程。当用户空间通信到***的内核空间后,对运行于内核空间中的第一处理进程进行第二内存回收处理,得到目标处理进程,能够有效地减少目标进程对内存空间的占用,加速了目标应用的启动性能。
在一些实施例中,第一内存回收处理包括无引用对象的资源释放处理和堆内存回收处理,如图5所示,步骤S410具体包括但不限于步骤S510至步骤S520。
S510,对目标进程进行无引用对象的资源释放处理,得到第二处理进程;
S520,对第二处理进程进行堆内存回收处理,得到目标进程对应的第一处理进程。
在步骤S510至步骤S520中,第一内存回收处理包括无引用对象的资源释放处理和堆内存回收处理,则对目标进程进行第一内存回收处理具体包括,对目标进程进行无引用对象的资源释放处理,即在***的用户空间中对已经无活动的内存资源开销进行无引用对象的资源释放,得到第二处理进程。之后,对第二处理进程进行堆内存回收处理,得到目标进程对应的第一处理进程,从而避免对无任何引用的对象占据的***内存空间的浪费。
在一些实施例中,第二内存回收处理包括清除无引用的内存页处理、回收匿名页置换到交换分区处理和回收文件页处理,如图6所示,步骤S420具体包括但不限于步骤S610至步骤S630。
S610,对运行于内核空间中的第一处理进程进行清除无引用的内存页处理,得到第三处理进程;
S620,对第三处理进程进行回收匿名页置换到交换分区处理,得到第四处理进程;
S630,对第四处理进程进行回收文件页处理,得到目标进程对应的目标处理进程。
在步骤S610至步骤S620中,第二内存回收处理包括清除无引用的内存页处理、回收匿名页置换到交换分区处理和回收文件页处理,则对运行于内核空间中的第一处理进程进行第二内存回收处理具体包括,对运行于内核空间中的第一处理进程进行清除无引用的内存页处理,得到第三处理进程;对第三处理进程进行回收匿名页置换到交换分区处理,得到第四处理进程;最后,对第四处理进程进行回收文件页处理,得到目标进程对应的目标处理进程,能够更有效地减少目标进程对内存空间的占用。因此,本申请对保留的目标进程在用户空间和内核空间上分别做了内存回收处理,加速了目标应用的启动性能,提升了用户体验。
在一些实施例中,如图7所示,步骤S140具体包括但不限于步骤S710至步骤S720。
S710,响应于目标应用的应用启动命令,根据目标进程列表中目标应用对应的目标处理进程执行应用启动命令;
S720,将目标处理进程再次移动到目标进程列表的尾部。
在步骤S410至步骤S420中,当用户再次启动目标应用时,响应于目标应用的应用启动命令,根据目标进程列表中目标应用对应的目标处理进程执行应用启动命令,由于目标进程列表中保存有目标应用对应的目标处理进程,则目标进程对应的基础内存资源可以快速的从***的swap分区中换入,从而实现读取IO文件页缓存。同时,当目标应用被重新启动使用时,会将目标应用对应的目标处理进程再次移动到目标进程列表的尾部。
本申请实施例提出的一种应用冷启动的方法,通过响应于对应用列表的目标应用进行应用清除处理的指令,对目标应用的实例进行清除,为了消除应用再次打开时处于的冷启动状态,在进程列表中保留目标应用对应的目标进程,其中,应用列表包括多个应用,进程列表包括多个应用进程。为了减少保留的目标进程对内存空间的占用,同时加速目标应用的启动性能,对目标进程进行内存压缩回收处理,即对目标进程进行无引用对象的资源释放处理,和堆内存回收处理,得到目标进程对应的第一处理进程;之后,对运行于内核空间中的第一处理进程进行清除无引用的内存页处理、回收匿名页置换到交换分区处理和回收文件页处理,得到目标进程对应的目标处理进程。根据预设的LRU算法规则确定目标进程列表,即将目标处理进程***第一进程列表的尾部,得到包括目标处理进程的第二进程列表。之后,将第二进程列表作为初始的目标进程列表,根据预设的内存总量和第一进程列表当前的内存剩余量确定当前可容纳进程数量,再根据预设的LRU算法规则,当目标进程列表的当前进程数量超出当前可容纳进程数量,将位于目标进程列表的头部的进程进行移除,直至当前进程数量小于等于当前可容纳进程数量,得到更新的目标进程列表。当再次点击启动该目标应用时,即响应于针对目标应用的应用启动命令后,根据目标进程列表中目标应用对应的目标处理进程执行应用启动命令,并将目标处理进程再次移动到目标进程列表的尾部。本申请通过保留目标应用的目标进程并对其进行内存压缩回收处理,能够有效地减少目标进程对内存空间的占用,加速了目标应用的启动性能,提升了用户体验。
本申请实施例还提出了一种应用冷启动的装置,如图8所示,该装置包括应用处理模块110、内存压缩回收模块120、进程管理模块130和应用启动模块140,应用处理模块110用于响应于对应用列表150的目标应用进行应用清除处理的指令,对目标应用的实例进行清除,并且在进程列表中保留目标应用对应的目标进程,其中,应用列表150包括多个应用,进程列表包括多个应用进程;内存压缩回收模块120用于对目标进程进行内存压缩回收处理,得到目标处理进程;进程管理模块130用于根据预设的LRU算法规则确定目标进程列表,目标进程列表包括目标处理进程;应用启动模块140,用于响应于针对目标应用的应用启动命令,根据目标进程列表中目标应用对应的目标处理进程执行应用启动命令。本申请通过保留目标应用的目标进程,并对其进行内存压缩回收处理,当在应用启动模块140中再次启动目标应用时,能够加速对目标应用的启动性能,完成对目标应用的启动,提升了用户体验。本申请实施例的一种应用冷启动的装置用于执行上述实施例中的一种应用冷启动的方法,其具体处理过程与上述实施例中的一种应用冷启动的方法相同,此处不再一一赘述。
本申请实施例还提供了一种计算机设备,该计算机设备包括存储器和处理器,其中,存储器中存储有程序,程序被处理器执行时处理器用于执行如本申请第一方面实施例中任一项的一种应用冷启动的方法。
下面结合图9对计算机设备的硬件结构进行详细说明。该计算机设备包括:处理器901、存储器902、输入/输出接口903、通信接口904和总线905。
处理器901,可以采用通用的CPU(Central Processin Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器902,可以采用ROM(Read Only Memory,只读存储器)、静态存储设备、动态存储设备或者RAM(Random Access Memory,随机存取存储器)等形式实现。存储器902可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器902中,并由处理器901来调用执行本申请实施例的一种应用冷启动的方法;
输入/输出接口903,用于实现信息输入及输出;
通信接口904,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;和总线905,在设备的各个组件(例如处理器901、存储器902、输入/输出接口903和通信接口904)之间传输信息;
其中处理器901、存储器902、输入/输出接口903和通信接口904通过总线905实现彼此之间在设备内部的通信连接。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,在计算机程序被计算机执行时,计算机用于执行如本申请第一方面实施例中任一项的一种应用冷启动的方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图1至图7中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (10)
1.一种应用冷启动的方法,其特征在于,包括:
响应于对应用列表的目标应用进行应用清除处理的指令,对所述目标应用的实例进行清除,并且在进程列表中保留所述目标应用对应的目标进程,其中,所述应用列表包括多个应用,所述进程列表包括多个应用进程;
对所述目标进程进行内存压缩回收处理,得到目标处理进程;
根据预设的LRU算法规则确定目标进程列表,所述目标进程列表包括所述目标处理进程;
响应于针对所述目标应用的应用启动命令,根据所述目标进程列表中所述目标应用对应的所述目标处理进程执行所述应用启动命令。
2.根据权利要求1所述的一种应用冷启动的方法,其特征在于,所述根据预设的LRU算法规则确定目标进程列表,所述目标进程列表包括所述目标处理进程,包括:
获取第一进程列表当前的内存剩余量;
将所述目标处理进程***所述第一进程列表的尾部,得到包括所述目标处理进程的第二进程列表;
根据预设的LRU算法规则和所述第一进程列表当前的内存剩余量对所述第二进程列表进行进程控制处理,得到目标进程列表。
3.根据权利要求2所述的一种应用冷启动的方法,其特征在于,所述根据预设的LRU算法规则和所述第一进程列表当前的内存剩余量对所述第二进程列表进行进程控制处理,得到目标进程列表,包括:
将所述第二进程列表作为初始的目标进程列表;
根据预设的内存总量和所述第一进程列表当前的内存剩余量确定当前可容纳进程数量;
根据预设的LRU算法规则,当所述目标进程列表的当前进程数量超出所述当前可容纳进程数量,将位于所述目标进程列表的头部的进程进行移除,直至所述当前进程数量小于等于所述当前可容纳进程数量,得到更新的所述目标进程列表。
4.根据权利要求1所述的一种应用冷启动的方法,其特征在于,所述对所述目标进程进行内存压缩回收处理,得到目标处理进程,包括:
对所述目标进程进行第一内存回收处理,得到第一处理进程;
对运行于内核空间中的所述第一处理进程进行第二内存回收处理,得到目标处理进程。
5.根据权利要求4所述的一种应用冷启动的方法,其特征在于,所述第一内存回收处理包括无引用对象的资源释放处理和堆内存回收处理,所述对所述目标进程进行第一内存回收处理,得到第一处理进程,包括:
对所述目标进程进行所述无引用对象的资源释放处理,得到第二处理进程;
对所述第二处理进程进行所述堆内存回收处理,得到所述目标进程对应的第一处理进程。
6.根据权利要求4所述的一种应用冷启动的方法,其特征在于,所述第二内存回收处理包括清除无引用的内存页处理、回收匿名页置换到交换分区处理和回收文件页处理,所述对运行于内核空间中的所述第一处理进程进行第二内存回收处理,得到目标处理进程,包括:
对运行于内核空间中的所述第一处理进程进行所述清除无引用的内存页处理,得到第三处理进程;
对所述第三处理进程进行所述回收匿名页置换到交换分区处理,得到第四处理进程;
对所述第四处理进程进行所述回收文件页处理,得到所述目标进程对应的目标处理进程。
7.根据权利要求2所述的一种应用冷启动的方法,其特征在于,所述响应于针对所述目标应用的应用启动命令,根据所述目标进程列表中所述目标应用对应的所述目标处理进程执行所述应用启动命令,包括:
响应于所述目标应用的应用启动命令,根据所述目标进程列表中所述目标应用对应的所述目标处理进程执行所述应用启动命令;
将所述目标处理进程再次移动到所述目标进程列表的尾部。
8.一种应用冷启动的装置,其特征在于,包括:
应用处理模块,用于响应于对应用列表的目标应用进行应用清除处理的指令,对所述目标应用的实例进行清除,并且在进程列表中保留所述目标应用对应的目标进程,其中,所述应用列表包括多个应用,所述进程列表包括多个应用进程;
内存压缩回收模块,用于对所述目标进程进行内存压缩回收处理,得到目标处理进程;
进程管理模块,用于根据预设的LRU算法规则确定目标进程列表,所述目标进程列表包括所述目标处理进程;
应用启动模块,用于响应于针对所述目标应用的应用启动命令,根据所述目标进程列表中所述目标应用对应的所述目标处理进程执行所述应用启动命令。
9.一种计算机设备,其特征在于,所述一种计算机设备包括存储器和处理器,其中,所述存储器中存储有程序,所述程序被所述处理器执行时所述处理器用于执行:
如权利要求1至7中任一项所述的一种应用冷启动的方法。
10.一种计算机可读存储介质,其特征在于,所述一种计算机可读存储介质存储有计算机程序,在所述计算机程序被计算机执行时,所述计算机用于执行:
如权利要求1至7中任一项所述的一种应用冷启动的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210074033.5A CN114518905A (zh) | 2022-01-21 | 2022-01-21 | 一种应用冷启动的方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210074033.5A CN114518905A (zh) | 2022-01-21 | 2022-01-21 | 一种应用冷启动的方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114518905A true CN114518905A (zh) | 2022-05-20 |
Family
ID=81596590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210074033.5A Pending CN114518905A (zh) | 2022-01-21 | 2022-01-21 | 一种应用冷启动的方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114518905A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484472A (zh) * | 2016-09-29 | 2017-03-08 | 华为技术有限公司 | 一种内存回收方法及终端 |
CN108287760A (zh) * | 2017-08-08 | 2018-07-17 | 珠海市魅族科技有限公司 | 终端设备控制方法及装置、终端设备及计算机可读存储介质 |
US20180349261A1 (en) * | 2017-06-04 | 2018-12-06 | Apple Inc. | Method and apparatus for managing kernel memory of data processing systems |
CN111488207A (zh) * | 2020-03-11 | 2020-08-04 | 中移(杭州)信息技术有限公司 | 应用进程保活方法、装置、网络设备及存储介质 |
CN111651261A (zh) * | 2020-07-07 | 2020-09-11 | Oppo(重庆)智能科技有限公司 | 进程管理方法、装置、终端设备及计算机可读存储介质 |
CN113722087A (zh) * | 2021-06-10 | 2021-11-30 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
CN113918287A (zh) * | 2021-11-11 | 2022-01-11 | 杭州逗酷软件科技有限公司 | 启动应用程序的方法、装置、终端设备及存储介质 |
-
2022
- 2022-01-21 CN CN202210074033.5A patent/CN114518905A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484472A (zh) * | 2016-09-29 | 2017-03-08 | 华为技术有限公司 | 一种内存回收方法及终端 |
US20180349261A1 (en) * | 2017-06-04 | 2018-12-06 | Apple Inc. | Method and apparatus for managing kernel memory of data processing systems |
CN108287760A (zh) * | 2017-08-08 | 2018-07-17 | 珠海市魅族科技有限公司 | 终端设备控制方法及装置、终端设备及计算机可读存储介质 |
CN111488207A (zh) * | 2020-03-11 | 2020-08-04 | 中移(杭州)信息技术有限公司 | 应用进程保活方法、装置、网络设备及存储介质 |
CN111651261A (zh) * | 2020-07-07 | 2020-09-11 | Oppo(重庆)智能科技有限公司 | 进程管理方法、装置、终端设备及计算机可读存储介质 |
CN113722087A (zh) * | 2021-06-10 | 2021-11-30 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
CN113918287A (zh) * | 2021-11-11 | 2022-01-11 | 杭州逗酷软件科技有限公司 | 启动应用程序的方法、装置、终端设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
刘盼: "你的APP为何启动那么慢?", pages 1, Retrieved from the Internet <URL:https://cloud.tencent.com/developer/article/1422396> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10990540B2 (en) | Memory management method and apparatus | |
CN111352861B (zh) | 内存压缩方法、装置及电子设备 | |
CN110096336B (zh) | 数据监控方法、装置、设备和介质 | |
CN104808952B (zh) | 数据缓存方法及装置 | |
US11360884B2 (en) | Reserved memory in memory management system | |
CN111679914B (zh) | 一种内存管理方法、***、计算机设备及存储介质 | |
CN110727606A (zh) | 内存回收方法、装置以及电子设备 | |
CN110727607B (zh) | 内存回收方法、装置以及电子设备 | |
CN109508235B (zh) | 一种内存池管理方法、装置及计算机可读存储介质 | |
CN113590301A (zh) | 一种深度学习业务的任务调度方法及相关装置 | |
CN109683983B (zh) | 一种镜像文件的生成及加载方法、设备 | |
CN115470008B (zh) | 一种元数据访问方法、装置和存储介质 | |
EP4369191A1 (en) | Memory scanning method and apparatus | |
CN112598565A (zh) | 一种基于加速卡的服务运行方法、装置、电子设备及存储介质 | |
CN114721844A (zh) | 数据缓存方法和装置、计算机设备、存储介质 | |
CN111338688B (zh) | 数据长效缓存方法、装置、计算机***及可读存储介质 | |
CN113377722A (zh) | 一种资源数据读取方法、装置和存储介质 | |
CN115712500A (zh) | 内存释放、内存恢复方法、装置、计算机设备及存储介质 | |
CN116069493A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
CN114518905A (zh) | 一种应用冷启动的方法、装置、计算机设备和存储介质 | |
CN112269665A (zh) | 内存的处理方法和装置、电子设备和存储介质 | |
CN110020290B (zh) | 网页资源缓存方法、装置、存储介质及电子装置 | |
CN112000462A (zh) | 一种基于共享外设资源的数据处理方法及装置 | |
CN112685371A (zh) | 基于大数据的文件存储空间分配方法、装置及存储介质 | |
CN115269168A (zh) | 内存管理方法及装置、终端和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |