1.本公开涉及计算机技术领域,尤其涉及一种应用程序的运行方法、装置、设备及存储介质。
背景技术:2.随着互联网的发展,越来越多的手机app(application,应用程序)上架并为人们安装使用。随着app的新功能开发和升级,app运行时所占的内存越来越大,在低内存手机会出现内存不足等情况,使得大内存手机应运而生。但是,由于人们习惯在手机上同时运行多个app,即使是大内存手机,也会降低app的运行速度,甚至发生卡顿的状况,影响用户的使用体验。
技术实现要素:3.为克服相关技术中存在的问题,本公开实施例提供一种应用程序的运行方法、装置、设备及存储介质,用以解决相关技术中的缺陷。
4.根据本公开实施例的第一方面,提供一种应用程序的运行方法,所述方法包括:
5.响应于检测到目标应用程序启动,获取所述目标应用程序的运行相关信息;
6.若基于所述运行相关信息确定所述目标应用程序符合设定条件,则将所述目标应用程序的运行所需数据由磁盘中绑定至内存中;
7.在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。
8.在一实施例中,所述运行所需数据包括安卓应用程序包apk路径信息以及私有数据;
9.所述将所述目标应用程序的运行所需数据由磁盘中绑定至内存中,包括:
10.将所述安卓应用程序包apk路径信息绑定至内存中的临时文件系统tmpfs内的第一目录中,以及将所述私有数据绑定至所述临时文件系统tmpfs内的第二目录中。
11.在一实施例中,所述在所述内存中基于所述运行所需数据对所述目标应用程序进行运行,还包括:
12.将所述目标应用程序在所述内存中的进程所对应的优先级提升至设定优先级以上。
13.在一实施例中,所述在所述内存中基于所述运行所需数据对所述目标应用程序进行运行,还包括:
14.将所述目标应用程序在所述内存中的进程添加至预设的白名单中,所述白名单用于屏蔽进程清理程序的查杀。
15.在一实施例中,所述方法还包括:
16.当在前台运行所述目标应用程序的情况下,减少所述内存中允许缓存的高速缓冲存储器cache进程的数量;
17.当所述目标应用程序由前台运行的状态转换为后台运行状态的情况下,恢复所述
内存中允许缓存的高速缓冲存储器cache进程的数量。
18.在一实施例中,所述方法还包括:
19.当在前台运行所述目标应用程序的情况下,检测当前的剩余内存量;
20.若检测到所述当前的剩余内存量小于或等于总内存量的设定比例,则按照进程优先级从低到高的顺序,查杀设定数量的高速缓冲存储器cache进程。
21.在一实施例中,所述方法还包括:
22.当检测到所述目标应用程序退出时,在所述内存中杀掉所述目标应用程序的进程;
23.将所述目标应用程序的运行所需数据由内存中移出至磁盘中的设定位置,所述设定位置包括所述所需数据对应于所述磁盘中的原始位置。
24.在一实施例中,在将所述目标应用程序的运行所需数据由内存中移出之后,所述方法还包括:
25.将所述目标应用程序本次运行期间产生的数据存储至所述磁盘中的原始位置。
26.在一实施例中,所述运行相关信息包括目标程序标识信息;
27.所述基于所述运行相关信息确定所述目标应用程序符合设定条件,包括:
28.若在预先构建的标识信息列表中查找到所述目标程序标识信息,则确定所述目标应用程序符合设定条件。
29.在一实施例中,所述运行相关信息包括运行时所需内存量;
30.所述基于所述运行相关信息确定所述目标应用程序符合设定条件,包括:
31.若所述运行时所需内存量大于或等于设定阈值,则确定所述目标应用程序符合设定条件。
32.根据本公开实施例的第二方面,提供一种应用程序的运行装置,所述装置包括:
33.相关信息获取模块,用于响应于检测到目标应用程序启动,获取所述目标应用程序的运行相关信息;
34.所需数据绑定模块,用于当基于所述运行相关信息确定所述目标应用程序符合设定条件时,将所述目标应用程序的运行所需数据由磁盘中绑定至内存中;
35.应用程序运行模块,用于在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。
36.在一实施例中,所述运行所需数据包括安卓应用程序包apk路径信息以及私有数据;
37.所述所需数据绑定模块还用于将所述安卓应用程序包apk路径信息绑定至内存中的临时文件系统tmpfs内的第一目录中,以及将所述私有数据绑定至所述临时文件系统tmpfs内的第二目录中。
38.在一实施例中,所述应用程序运行模块还用于将所述目标应用程序在所述内存中的进程所对应的优先级提升至设定优先级以上。
39.在一实施例中,所述应用程序运行模块还用于将所述目标应用程序在所述内存中的进程添加至预设的白名单中,所述白名单用于屏蔽进程清理程序的查杀。
40.在一实施例中,所述装置还包括:
41.进程数量清理模块,用于当在前台运行所述目标应用程序的情况下,减少所述内
存中允许缓存的高速缓冲存储器cache进程的数量;
42.进程数量恢复模块,用于当所述目标应用程序由前台运行的状态转换为后台运行状态的情况下,恢复所述内存中允许缓存的高速缓冲存储器cache进程的数量。
43.在一实施例中,所述装置还包括:缓冲进程查杀模块;
44.所述缓冲进程查杀模块,包括:
45.剩余内存检测单元,用于当在前台运行所述目标应用程序的情况下,检测当前的剩余内存量;
46.缓冲进程查杀单元,用于当检测到所述当前的剩余内存量小于或等于总内存量的设定比例时,按照进程优先级从低到高的顺序,查杀设定数量的高速缓冲存储器cache进程。
47.在一实施例中,所述装置还包括:
48.程序进程查杀模块,用于当检测到所述目标应用程序退出时,在所述内存中杀掉所述目标应用程序的进程;
49.所需数据移出模块,用于将所述目标应用程序的运行所需数据由内存中移出至磁盘中的设定位置,所述设定位置包括所述所需数据对应于所述磁盘中的原始位置。
50.在一实施例中,所述装置还包括:
51.运行数据存储模块,用于将所述目标应用程序本次运行期间产生的数据存储至所述磁盘中的原始位置。
52.在一实施例中,所述运行相关信息包括目标程序标识信息;
53.所需数据绑定模块,还用于当在预先构建的标识信息列表中查找到所述目标程序标识信息时,确定所述目标应用程序符合设定条件。
54.在一实施例中,所述运行相关信息包括运行时所需内存量;
55.所需数据绑定模块,还用于当所述运行时所需内存量大于或等于设定阈值时,确定所述目标应用程序符合设定条件。
56.根据本公开实施例的第三方面,提供一种应用程序的运行设备,所述设备包括:
57.处理器,以及用于存储处理器可执行指令的存储器;
58.其中,所述处理器被配置为:
59.响应于检测到目标应用程序启动,获取所述目标应用程序的运行相关信息;
60.若基于所述运行相关信息确定所述目标应用程序符合设定条件,则将所述目标应用程序的运行所需数据由磁盘中绑定至内存中;
61.在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。
62.根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现:
63.响应于检测到目标应用程序启动,获取所述目标应用程序的运行相关信息;
64.若基于所述运行相关信息确定所述目标应用程序符合设定条件,则将所述目标应用程序的运行所需数据由磁盘中绑定至内存中;
65.在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。
66.本公开的实施例提供的技术方案可以包括以下有益效果:
67.本公开通过响应于检测到目标应用程序启动,获取所述目标应用程序的运行相关
信息,并当基于所述运行相关信息确定所述目标应用程序符合设定条件时,将所述目标应用程序的运行所需数据由磁盘中绑定至内存中,进而可以在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。由于是将目标应用程序的运行所需数据由磁盘中绑定至内存中,并在内存中基于所述运行所需数据对所述目标应用程序进行运行,因而可以实现将从磁盘中访问数据调整为从内存中访问数据,可以优化应用程序的运行速度,提高应用程序运行的顺畅程度,进而可以提升用户的体验。
68.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
69.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
70.图1是根据第一示例性实施例示出的一种应用程序的运行方法的流程图;
71.图2是根据第二示例性实施例示出的一种应用程序的运行方法的流程图;
72.图3是根据第三示例性实施例示出的一种应用程序的运行方法的流程图;
73.图4是根据第四示例性实施例示出的一种应用程序的运行方法的流程图;
74.图5是根据第五示例性实施例示出的一种应用程序的运行方法的流程图;
75.图6是根据第六示例性实施例示出的一种应用程序的运行方法的流程图;
76.图7是根据第七示例性实施例示出的一种应用程序的运行方法的流程图;
77.图8是根据一示例性实施例示出的一种应用程序的运行装置的框图;
78.图9是根据又一示例性实施例示出的一种应用程序的运行装置的框图;
79.图10是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
80.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本公开相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
81.图1是根据一示例性实施例示出的一种应用程序的运行方法的流程图;本实施例的方法可以应用于终端设备(如,智能手机、平板电脑、笔记本电脑或可穿戴设备等),或者,可以应用于服务端(如,一台服务器或多台服务器组成的服务器集群)。
82.如图1所示,该方法包括以下步骤s101-s103:
83.在步骤s101中,响应于检测到目标应用程序启动,获取所述目标应用程序的运行相关信息。
84.本实施例中,当终端设备检测到目标应用程序启动时,可以获取该目标应用程序的运行相关信息。
85.在一实施例中,上述运行相关信息可以包括目标应用程序的标识信息或目标运行程序在运行时所需内存量等。
86.在步骤s102中,若基于所述运行相关信息确定所述目标应用程序符合设定条件,
则将所述目标应用程序的运行所需数据由磁盘中绑定至内存中。
87.本实施例中,当获取所述目标应用程序的运行相关信息后,可以基于该运行相关信息确定目标应用程序是否符合设定条件,进而可以当目标应用程序符合设定条件时,将所述目标应用程序的运行所需数据由磁盘中绑定至内存中。也即是说,相关技术中的目标应用程序的运行所需数据是绑定在磁盘中的,目标应用程序在运行时需要访问绑定在磁盘中的运行所需数据,数据的输入/输出(即,i/o)量较大。而本实施例中是在确定目标应用程序符合设定条件时,将目标应用程序的运行所需数据由磁盘中绑定至内存中,进而可以实现后续在内存中基于该运行所需数据对目标应用程序进行运行,即可实现将从磁盘中访问数据调整为从内存中访问数据,可以优化应用程序的运行速度,提高应用程序运行的顺畅程度。
88.值得说明的是,上述设定条件可以由开发人员或用户基于实际需要进行设置,如设置为目标应用程序的标识信息或目标运行程序在运行时所需内存量等信息所需达到的条件等,本实施例对此不进行限定。
89.在另一实施例中,上述基于所述运行相关信息确定所述目标应用程序符合设定条件的方式还可以参见下述图6或图7所示实施例,在此先不进行详述。
90.其中,上述目标应用程序的运行所需数据可以包括该目标应用程序的apk路径信息和该目标应用程序的私有数据等。
91.在步骤s103中,在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。
92.本实施例中,当将所述目标应用程序的运行所需数据由磁盘中绑定至内存中后,可以在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。
93.其中,在内存中基于绑定的apk路径信息和私有数据对所述目标应用程序进行运行的方式可以参见相关技术中的解释和说明,本实施例对此不进行限定。
94.在另一实施例中,上述在内存中对所述目标应用程序进行运行的方式还可以参见下述图2所示实施例,在此先不进行详述。
95.由上述描述可知,本实施例通过响应于检测到目标应用程序启动,获取所述目标应用程序的运行相关信息,并当基于所述运行相关信息确定所述目标应用程序符合设定条件时,将所述目标应用程序的运行所需数据由磁盘中绑定至内存中,进而可以在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。由于是将目标应用程序的运行所需数据由磁盘中绑定至内存中,并在内存中基于所述运行所需数据对所述目标应用程序进行运行,因而可以实现将从磁盘中访问数据调整为从内存中访问数据,可以优化应用程序的运行速度,提高应用程序运行的顺畅程度,进而可以提升用户的体验。
96.图2是根据第二示例性实施例示出的一种应用程序的运行方法的流程图;
97.本实施例的方法可以应用于终端设备(如,智能手机、平板电脑、笔记本电脑或可穿戴设备等),或者,可以应用于服务端(如,一台服务器或多台服务器组成的服务器集群)。
98.如图2所示,该方法包括以下步骤s201-s205:
99.在步骤s201中,响应于检测到目标应用程序启动,获取所述目标应用程序的运行相关信息。
100.其中,步骤s201的相关解释和说明可以参见上述实施例,在此不进行赘述。
101.在步骤s202中,若基于所述运行相关信息确定所述目标应用程序符合设定条件,则将所述安卓应用程序包apk路径信息绑定至内存中的临时文件系统tmpfs内的第一目录中,以及将所述私有数据绑定至所述临时文件系统tmpfs内的第二目录中。
102.其中,上述第一目录和第二目标可以是内存中两个相互独立的目录,本实施例对此不进行限定。可以理解的是,由于目标应用程序的apk路径信息和私有数据原本在磁盘中就绑定在不同的目录中,因而本实施例中将目标应用程序的apk路径信息和私有数据绑定在内存中的不同的目录中。
103.在步骤s203中,将所述目标应用程序在所述内存中的进程所对应的优先级提升至设定优先级以上。
104.本实施例中,为了避免目标应用程序在内存中的进程不被查杀掉,因而可以将该进程的优先级提升至设定优先级以上。可以理解的是,优先级高于该设定优先级的进程不会进程清理程序所杀掉。
105.值得说明的是,上述设定优先级的具体数值可以由开发人员或用户进行自由设置,如设置为400等,本实施例对此不进行限定。
106.在步骤s204中,将所述目标应用程序在所述内存中的进程添加至预设的白名单中。所述白名单用于屏蔽进程清理程序的查杀。
107.本实施例中,为了避免目标应用程序在内存中的进程不被查杀掉,还可以将目标应用程序在所述内存中的进程添加至预设的白名单中。可以理解的是,该白名单中的进程不会进程清理程序所杀掉。
108.值得说明的是,上述白名单的设置方式可以由开发人员自由设置,本实施例对此不进行限定。
109.由上述描述可知,本实施例通过将所述安卓应用程序包apk路径信息绑定至内存中的临时文件系统tmpfs内的第一目录中,以及将所述私有数据绑定至所述临时文件系统tmpfs内的第二目录中,可以实现将应用程序的运行所需数据绑定至内存中的设定目录,进而可以实现后续基于该数据在内存中运行所述应用程序。而通过将所述目标应用程序在所述内存中的进程所对应的优先级提升至设定优先级以上和/或将所述目标应用程序在所述内存中的进程添加至预设的白名单中,可以使目标应用程序免于被查杀,可以保证目标应用程序的顺利运行。
110.图3是根据第三示例性实施例示出的一种应用程序的运行方法的流程图;
111.本实施例的方法可以应用于终端设备(如,智能手机、平板电脑、笔记本电脑或可穿戴设备等),或者,可以应用于服务端(如,一台服务器或多台服务器组成的服务器集群)。
112.如图3所示,该方法包括以下步骤s301-s305:
113.在步骤s301中,响应于检测到目标应用程序启动,获取所述目标应用程序的运行相关信息。
114.在步骤s302中,若基于所述运行相关信息确定所述目标应用程序符合设定条件,则将所述目标应用程序的运行所需数据由磁盘中绑定至内存中。
115.在步骤s303中,在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。
116.其中,步骤s301-s303的相关解释和说明可以参见上述实施例,在此不进行赘述。
117.在步骤s304中,当在前台运行所述目标应用程序的情况下,减少所述内存中允许缓存的高速缓冲存储器cache进程的数量。
118.本实施例中,当终端设备检测到目标应用程序处于前台运行的状态下时,可以减少内存中允许缓存的高速缓冲存储器cache进程的数量。
119.举例来说,当检测到目标应用程序在前台运行时,可以将内存中允许缓存的高速缓冲存储器cache进程的数量减少至原来的一半,本实施例对此比例不进行限定。
120.其中,内存中允许缓存的高速缓冲存储器cache进程的数量可以用于表征当前内存中允许运行的cache进程的最大数量。
121.在步骤s305中,当所述目标应用程序由前台运行的状态转换为后台运行状态的情况下,恢复所述内存中允许缓存的高速缓冲存储器cache进程的数量。
122.本实施例中,目标应用程序的进程可以根据用户的需要在前台运行和后台运行,为了不影响内存中其他cache进程的缓冲,可以在检测到目标应用程序由前台运行的状态转换为后台运行状态的情况下,恢复所述内存中允许缓存的高速缓冲存储器cache进程的数量。
123.由上述描述可知,本实施例通过当在前台运行所述目标应用程序的情况下,减少所述内存中允许缓存的高速缓冲存储器cache进程的数量,可以减少缓存进程对内存的消耗,使得目标应用程序有足够的运行空间,可以确保目标应用程序的顺利运行,而当目标应用程序由前台运行的状态转换为后台运行状态的情况下,恢复所述内存中允许缓存的高速缓冲存储器cache进程的数量,可以使内存中的缓存进程数量恢复原样,不影响内存的原有性能。
124.图4是根据第四示例性实施例示出的一种应用程序的运行方法的流程图;
125.本实施例的方法可以应用于终端设备(如,智能手机、平板电脑、笔记本电脑或可穿戴设备等),或者,可以应用于服务端(如,一台服务器或多台服务器组成的服务器集群)。
126.如图4所示,该方法包括以下步骤s401-s405:
127.在步骤s401中,响应于检测到目标应用程序启动,获取所述目标应用程序的运行相关信息。
128.在步骤s402中,若基于所述运行相关信息确定所述目标应用程序符合设定条件,则将所述目标应用程序的运行所需数据由磁盘中绑定至内存中。
129.在步骤s403中,在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。
130.其中,步骤s401-s403的相关解释和说明可以参见上述实施例,在此不进行赘述。
131.在步骤s404中,当在前台运行所述目标应用程序的情况下,检测当前的剩余内存量。
132.本实施例中,当终端设备检测到目标应用程序处于前台运行的情况下,可以通过内存管理器等工具检测当前的剩余内存量。
133.在步骤s405中,若检测到所述当前的剩余内存量小于或等于总内存量的设定比例,则按照进程优先级从低到高的顺序,查杀设定数量的高速缓冲存储器cache进程。
134.本实施例中,当检测到当前的剩余内存量后,可以将该剩余内存量与总内存量进行比较,得到剩余内存量占总内存量的比例,从而可以当该比例小于设定比例(如,1/4等)
时,可以按照进程优先级从低到高的顺序,查杀掉一定数量的高速缓冲存储器cache进程,以保证目标应用程序由充足的内存运行空间。
135.由上述描述可知,本实施例通过当在前台运行所述目标应用程序的情况下,检测当前的剩余内存量,并当检测到所述当前的剩余内存量小于或等于总内存量的设定比例时,按照进程优先级从低到高的顺序,查杀设定数量的高速缓冲存储器cache进程,可以减少部分优先级较低的缓存进程对内存的消耗,使得目标应用程序有足够的运行空间,可以确保目标应用程序的顺利运行。
136.图5是根据第五示例性实施例示出的一种应用程序的运行方法的流程图;
137.本实施例的方法可以应用于终端设备(如,智能手机、平板电脑、笔记本电脑或可穿戴设备等),或者,可以应用于服务端(如,一台服务器或多台服务器组成的服务器集群)。
138.如图5所示,该方法包括以下步骤s501-s506:
139.在步骤s501中,响应于检测到目标应用程序启动,获取所述目标应用程序的运行相关信息。
140.在步骤s502中,若基于所述运行相关信息确定所述目标应用程序符合设定条件,则将所述目标应用程序的运行所需数据由磁盘中绑定至内存中。
141.在步骤s503中,在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。
142.其中,步骤s501-s503的相关解释和说明可以参见上述实施例,在此不进行赘述。
143.在步骤s504中,当检测到所述目标应用程序退出时,在所述内存中杀掉所述目标应用程序的进程。
144.本实施例中,当在所述内存中基于所述运行所需数据对所述目标应用程序进行运行后,若检测到该目标应用程序退出,则可以在内存中杀掉该目标应用程序的进程。
145.举例来说,可以当检测到上述目标应用程序退出时,控制进程查杀程序对内存中的目标应用程序的进程进行查杀。
146.在步骤s505中,将所述目标应用程序的运行所需数据由内存中移出至磁盘中的设定位置。其中,所述设定位置包括所述所需数据对应于所述磁盘中的原始位置。
147.本实施例中,当在所述内存中杀掉所述目标应用程序的进程后,可以将该目标应用程序的运行所需数据由内存中再绑定回磁盘中的设定位置,如绑定回该数据对应于所述磁盘中的原始位置。
148.在步骤s506中,将所述目标应用程序本次运行期间产生的数据存储至所述磁盘中的原始位置。
149.本实施例中,当将所述目标应用程序的运行所需数据由内存中移出至磁盘中的设定位置后,还可以将所述目标应用程序本次运行期间产生的数据存储至所述磁盘中的原始位置,以保证用户下次可以接着当前的进度继续运行目标应用程序。
150.由上述描述可知,本实施例通过当检测到所述目标应用程序退出时,在所述内存中杀掉所述目标应用程序的进程,并将所述目标应用程序的运行所需数据由内存中移出至磁盘中的设定位置,所述设定位置包括所述所需数据对应于所述磁盘中的原始位置,可以实现在目标应用程序退出时对其绑定于内存中的数据进行解绑,并将解绑的数据重新绑定回磁盘中,以备后续使用。并且,通过将所述目标应用程序本次运行期间产生的数据存储至
所述磁盘中的原始位置,可以实现对本次内存中运行期间所产生的数据落盘到磁盘中,实现对应用程序的数据进行更新。
151.图6是根据第六示例性实施例示出的一种应用程序的运行方法的流程图;
152.本实施例的方法可以应用于终端设备(如,智能手机、平板电脑、笔记本电脑或可穿戴设备等),或者,可以应用于服务端(如,一台服务器或多台服务器组成的服务器集群)。
153.如图6所示,该方法包括以下步骤s601-s603:
154.在步骤s601中,响应于检测到目标应用程序启动,获取所述目标应用程序的目标程序标识信息。
155.本实施例中,当检测到目标应用程序启动时,可以获取该目标应用程序的标识信息,即本实施例中所述的目标程序标识信息。其中,该标识信息唯一对应于上述目标应用程序。
156.在步骤s602中,若在预先构建的标识信息列表中查找到所述目标程序标识信息,则将所述目标应用程序的运行所需数据由磁盘中绑定至内存中。
157.本实施例中,当获取所述目标应用程序的目标程序标识信息后,可以在预先构建的标识信息列表中查找到该目标程序标识信息,然后可以在查找到目标程序标识信息时,确定目标应用程序符合设定条件,进而可将所述目标应用程序的运行所需数据由磁盘中绑定至内存中。
158.可以理解的是,本实施例中可以预先构建一个标识信息列表,用于放置需要将运行所需数据绑定至内存中的至少一个应用程序的标识信息。并且,该列表中的标识信息可以根据用户或开发人员的需要进行增加和删除。在此基础上,当检测到任一应用程序启动时,为了判断该应用程序是否满足设定条件,可以将该应用程序的标识信息与上述列表中的标识信息进行比对,以确定该程序的标识是否在上述列表中。从而,在确定列表中包含该程序标识信息时,将其运行所需数据由磁盘中绑定至内存中。
159.在步骤s603中,在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。
160.其中,步骤s601与s603的相关解释和说明可以参见上述实施例,在此不进行赘述。
161.由上述描述可知,本实施例通过响应于检测到目标应用程序启动,获取所述目标应用程序的目标程序标识信息,并在预先构建的标识信息列表中查找所述目标程序标识信息,可以实现准确的判断当前启动的目标应用程序是否符合设定条件,进而可以在目标应用程序符合设定条件时,将所述目标应用程序的运行所需数据由磁盘中绑定至内存中,并在所述内存中基于所述运行所需数据对所述目标应用程序进行运行,可以实现将从磁盘中访问数据调整为从内存中访问数据,可以优化应用程序的运行速度,提高应用程序运行的顺畅程度,进而可以提升用户的体验。
162.图7是根据第七示例性实施例示出的一种应用程序的运行方法的流程图;
163.本实施例的方法可以应用于终端设备(如,智能手机、平板电脑、笔记本电脑或可穿戴设备等),或者,可以应用于服务端(如,一台服务器或多台服务器组成的服务器集群)。
164.如图7所示,该方法包括以下步骤s701-s703:
165.在步骤s701中,响应于检测到目标应用程序启动,获取所述目标应用程序的运行时所需内存量。
166.本实施例中,当检测到目标应用程序启动时,可以获取所述目标应用程序的运行时所需内存量,即该目标应用程序在系统中运行时所需的空间大小。
167.在步骤s702中,若所述运行时所需内存量大于或等于设定阈值,则将所述目标应用程序的运行所需数据由磁盘中绑定至内存中。
168.本实施例中,当获取所述目标应用程序的运行时所需内存量后,可以将该运行时所需内存量与设定阈值进行比较,然后可以在上述运行时所需内存量大于或等于设定阈值时,确定目标应用程序符合设定条件,进而可将所述目标应用程序的运行所需数据由磁盘中绑定至内存中。
169.可以理解的是,本实施例中可以预先设置一个运行时所需内存量的阈值。在此基础上,当检测到任一应用程序启动时,为了判断该应用程序是否满足设定条件,可以将该应用程序的运行时所需内存量与上述阈值进行比较,以确定该运行时所需内存量是否大于或等于该设定阈值。从而,在确定该应用程序的运行时所需内存量大于或等于设定阈值时,将其运行所需数据由磁盘中绑定至内存中。
170.在步骤s703中,在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。
171.其中,步骤s701与s703的相关解释和说明可以参见上述实施例,在此不进行赘述。
172.由上述描述可知,本实施例通过响应于检测到目标应用程序启动,获取所述目标应用程序的运行时所需内存量,并确定该运行时所需内存量是否大于或等于设定阈值,可以实现准确的判断当前启动的目标应用程序是否符合设定条件,进而可以在目标应用程序符合设定条件时,将所述目标应用程序的运行所需数据由磁盘中绑定至内存中,并在所述内存中基于所述运行所需数据对所述目标应用程序进行运行,可以实现将从磁盘中访问数据调整为从内存中访问数据,可以优化应用程序的运行速度,提高应用程序运行的顺畅程度,进而可以提升用户的体验。
173.图8是根据一示例性实施例示出的一种应用程序的运行装置的框图;本实施例的装置可以应用于终端设备(如,智能手机、平板电脑、笔记本电脑或可穿戴设备等),或者,可以应用于服务端(如,一台服务器或多台服务器组成的服务器集群)。如图8所示,该装置包括:相关信息获取模块110、所需数据绑定模块120以及应用程序运行模块130,其中:
174.相关信息获取模块110,用于响应于检测到目标应用程序启动,获取所述目标应用程序的运行相关信息;
175.所需数据绑定模块120,用于当基于所述运行相关信息确定所述目标应用程序符合设定条件时,将所述目标应用程序的运行所需数据由磁盘中绑定至内存中;
176.应用程序运行模块130,用于在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。
177.由上述描述可知,本实施例通过响应于检测到目标应用程序启动,获取所述目标应用程序的运行相关信息,并当基于所述运行相关信息确定所述目标应用程序符合设定条件时,将所述目标应用程序的运行所需数据由磁盘中绑定至内存中,进而可以在所述内存中基于所述运行所需数据对所述目标应用程序进行运行。由于是将目标应用程序的运行所需数据由磁盘中绑定至内存中,并在内存中基于所述运行所需数据对所述目标应用程序进行运行,因而可以实现将从磁盘中访问数据调整为从内存中访问数据,可以优化应用程序
的运行速度,提高应用程序运行的顺畅程度,进而可以提升用户的体验。
178.图9是根据又一示例性实施例示出的一种应用程序的运行装置的框图;本实施例的装置可以应用于终端设备(如,智能手机、平板电脑、笔记本电脑或可穿戴设备等),或者,可以应用于服务端(如,一台服务器或多台服务器组成的服务器集群)。其中,相关信息获取模块210、所需数据绑定模块220以及应用程序运行模块230与前述图8所示实施例中的相关信息获取模块110、所需数据绑定模块120以及应用程序运行模块130的功能相同,在此不进行赘述。
179.如图9所示,上述运行所需数据可以包括安卓应用程序包apk路径信息以及私有数据;
180.在此基础上,上述所需数据绑定模块220还可以用于将所述安卓应用程序包apk路径信息绑定至内存中的临时文件系统tmpfs内的第一目录中,以及将所述私有数据绑定至所述临时文件系统tmpfs内的第二目录中。
181.在一实施例中,应用程序运行模块230还可以用于将所述目标应用程序在所述内存中的进程所对应的优先级提升至设定优先级以上。
182.在一实施例中,应用程序运行模块230还可以用于将所述目标应用程序在所述内存中的进程添加至预设的白名单中,所述白名单用于屏蔽进程清理程序的查杀。
183.在一实施例中,如图9所示,上述装置还可以包括:
184.进程数量清理模块240,用于当在前台运行所述目标应用程序的情况下,减少所述内存中允许缓存的高速缓冲存储器cache进程的数量。
185.在一实施例中,上述装置还可以包括:
186.进程数量恢复模块250,用于当所述目标应用程序由前台运行的状态转换为后台运行状态的情况下,恢复所述内存中允许缓存的高速缓冲存储器cache进程的数量。
187.在一实施例中,上述装置还可以包括:缓冲进程查杀模块260;
188.其中,缓冲进程查杀模块260,可以进一步包括:
189.剩余内存检测单元261,用于当在前台运行所述目标应用程序的情况下,检测当前的剩余内存量;
190.缓冲进程查杀单元262,用于当检测到所述当前的剩余内存量小于或等于总内存量的设定比例时,按照进程优先级从低到高的顺序,查杀设定数量的高速缓冲存储器cache进程。
191.在一实施例中,上述装置还可以包括:
192.程序进程查杀模块270,用于当检测到所述目标应用程序退出时,在所述内存中杀掉所述目标应用程序的进程;
193.所需数据移出模块280,用于将所述目标应用程序的运行所需数据由内存中移出至磁盘中的设定位置,所述设定位置包括所述所需数据对应于所述磁盘中的原始位置。
194.在一实施例中,上述装置还可以包括:
195.运行数据存储模块290,用于将所述目标应用程序本次运行期间产生的数据存储至所述磁盘中的原始位置。
196.在一实施例中,上述运行相关信息可以包括目标程序标识信息;
197.在此基础上,所需数据绑定模块220,还可以用于当在预先构建的标识信息列表中
查找到所述目标程序标识信息时,确定所述目标应用程序符合设定条件。
198.在另一实施例中,上述运行相关信息可以包括运行时所需内存量;
199.在此基础上,所需数据绑定模块220,还可以用于当所述运行时所需内存量大于或等于设定阈值时,确定所述目标应用程序符合设定条件。
200.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
201.图10是根据一示例性实施例示出的一种电子设备的框图。例如,装置900可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
202.参照图10,装置900可以包括以下一个或多个组件:处理组件902,存储器904,电源组件906,多媒体组件908,音频组件910,输入/输出(i/o)的接口912,传感器组件914,以及通信组件916。
203.处理组件902通常控制装置900的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件902可以包括一个或多个处理器920来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件902可以包括一个或多个模块,便于处理组件902和其他组件之间的交互。例如,处理部件902可以包括多媒体模块,以方便多媒体组件908和处理组件902之间的交互。
204.存储器904被配置为存储各种类型的数据以支持在设备900的操作。这些数据的示例包括用于在装置900上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器904可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
205.电力组件906为装置900的各种组件提供电力。电力组件906可以包括电源管理系统,一个或多个电源,及其他与为装置900生成、管理和分配电力相关联的组件。
206.多媒体组件908包括在所述装置900和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件908包括一个前置摄像头和/或后置摄像头。当装置900处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
207.音频组件910被配置为输出和/或输入音频信号。例如,音频组件910包括一个麦克风(mic),当装置900处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器904或经由通信组件916发送。在一些实施例中,音频组件910还包括一个扬声器,用于输出音频信号。
208.i/o接口912为处理组件902和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁
定按钮。
209.传感器组件914包括一个或多个传感器,用于为装置900提供各个方面的状态评估。例如,传感器组件914可以检测到装置900的打开/关闭状态,组件的相对定位,例如所述组件为装置900的显示器和小键盘,传感器组件914还可以检测装置900或装置900一个组件的位置改变,用户与装置900接触的存在或不存在,装置900方位或加速/减速和装置900的温度变化。传感器组件914还可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件914还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件914还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
210.通信组件916被配置为便于装置900和其他设备之间有线或无线方式的通信。装置900可以接入基于通信标准的无线网络,如wifi,2g或3g,4g或5g或它们的组合。在一个示例性实施例中,通信部件916经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件916还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
211.在示例性实施例中,装置900可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
212.在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器904,上述指令可由装置900的处理器920执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
213.本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
214.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。