CN107122214B - 应用程序的预处理方法、装置及终端 - Google Patents
应用程序的预处理方法、装置及终端 Download PDFInfo
- Publication number
- CN107122214B CN107122214B CN201710294923.6A CN201710294923A CN107122214B CN 107122214 B CN107122214 B CN 107122214B CN 201710294923 A CN201710294923 A CN 201710294923A CN 107122214 B CN107122214 B CN 107122214B
- Authority
- CN
- China
- Prior art keywords
- class
- application program
- classes
- module
- target class
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 129
- 238000007781 pre-processing Methods 0.000 claims abstract description 32
- 230000006870 function Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 230000001174 ascending effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000003997 social interaction Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 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
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
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
本发明实施例提供一种应用程序的预处理方法、装置及终端,该方法获取应用程序的多个类中每个类的运行次数;根据每个类的运行次数对该多个类进行排序;根据排序结果从该多个类中确定出目标类;将该目标类加载到系统主进程中。该方案将应用程序中运行频率较高的目标类加载到系统主进程中,当再次运行该目标类对应的应用程序时,可以快速启动该应用程序,从而可以提高应用程序的启动速度。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种应用程序的预处理方法、装置及终端。
背景技术
随着计算机技术的发展,终端中应用程序的启动速度一直是计算机技术发展的一个重点方向。通过提升应用程序的启动速度,可以提高应用程序的运行效率,同时也可以减少用户的等待时间。
目前,应用程序在退出时,系统会关闭应用程序的所有进程和资源文件。因此,当该应用程序再次启动时,需要重新加载资源文件,并创建应用程序进程,从而导致应用程序的启动速度慢。
发明内容
本发明实施例提供一种应用程序的预处理方法、装置及终端,可以提高应用程序的启动速度。
本发明实施例提供一种应用程序的预处理方法,包括:
获取应用程序的多个类中每个类的运行次数,该类为该应用程序中执行预设功能的封装代码;
根据每个类的运行次数对该多个类进行排序;
根据排序结果从该多个类中确定出目标类;
将该目标类加载到系统主进程中。
相应的,本发明实施例还提供一种应用程序的预处理装置,包括:
获取模块,用于获取应用程序的多个类中每个类的运行次数,该类为该应用程序中执行预设功能的封装代码;
排序模块,用于根据每个类的运行次数对该多个类进行排序;
确定模块,用于根据排序结果从该多个类中确定出目标类;
加载模块,用于将该目标类加载到系统主进程中。
相应的,本发明实施例还提供一种终端,包括:
触摸屏,用于接收用户的触摸操作;
存储有可执行程序代码的存储器;
与该存储器耦合的处理器;
该处理器调用该存储器中存储的该可执行程序代码,执行上述应用程序的预处理方法。
本发明实施例提供的应用程序的预处理方法,获取应用程序的多个类中每个类的运行次数;根据每个类的运行次数对该多个类进行排序;根据排序结果从该多个类中确定出目标类;将该目标类加载到系统主进程中。该方案将应用程序中运行频率较高的目标类加载到系统主进程中,当再次运行该目标类对应的应用程序时,可以快速启动该应用程序。从而,可以提高应用程序的启动速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的应用程序的预处理方法的流程示意图。
图2是本发明实施例提供的应用程序的预处理方法的另一流程示意图。
图3是本发明实施例提供的应用程序的预处理方法的又一流程示意图。
图4是本发明实施例提供的应用程序的预处理方法的应用场景示意图。
图5是本发明实施例提供的应用程序的预处理装置的结构示意图。
图6是本发明实施例提供的应用程序的预处理装置的另一结构示意图。
图7是本发明实施例提供的应用程序的预处理装置的又一结构示意图。
图8是本发明实施例提供的应用程序的预处理装置的再一结构示意图。
图9是本发明实施例提供的终端的结构示意图。
图10是本发明实施例提供的终端的另一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书以及上述附图中的术语“第一”、“第二”、“第三”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应当理解,这样描述的对象在适当情况下可以互换。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤的过程、方法或包含了一系列模块或单元的装置、终端、系统不必限于清楚地列出的那些步骤或模块或单元,还可以包括没有清楚地列出的步骤或模块或单元,也可以包括对于这些过程、方法、装置、终端或系统固有的其它步骤或模块或单元。
本发明实施例提供一种应用程序的预处理方法。该方法可以应用于终端中。该终端可以为智能手机、平板电脑等设备。
如图1所示,该应用程序的预处理方法,可以包括以下步骤:
S110,获取应用程序的多个类中每个类的运行次数,该类为该应用程序中执行预设功能的封装代码。
其中,应用程序中的类可以是应用程序中的封装代码。该封装代码用于执行预设功能。例如,微信应用程序可以包括主界面类、通信类、社交圈类等多个类。其中,主界面类用于显示微信应用程序的主界面。通信类用于实现用户与其他用户之间的通信功能。社交圈类用于实现用户与其他用户之间的社交互动功能。
终端可以获取应用程序的多个类中每个类在一段时间内的运行次数。例如,可以获取应用程序的每个类在近一个月内的运行次数,也可以获取应用程序的每个类从第一次开始运行以来的运行次数。
终端中安装有多个应用程序时,终端可以针对每个应用程序分别获取该应用程序的多个类中每个类的运行次数,然后针对每个应用程序分别进行处理。
在一些实施例中,如图2所示,获取应用程序的多个类中每个类的运行次数可以包括以下步骤:
S111,获取应用程序的历史运行记录;
S112,根据该历史运行记录获取该应用程序的多个类中每个类的运行次数。
其中,终端中可以设置日志文件。该日志文件用于记录应用程序的历史运行记录。终端中可以为所有应用程序设置一个日志文件,该日志文件记录所有应用程序的历史运行记录。终端中也可以为每个应用程序分别设置一个日志文件。
应用程序的历史运行记录可以包括应用程序中每个类每次运行时的时间、运行时长等数据。终端可以获取应用程序的历史运行记录,然后根据该历史运行记录获取该应用程序的多个类中每个类的运行次数。
S120,根据每个类的运行次数对该多个类进行排序。
其中,终端获取到应用程序中每个类的运行次数后,根据每个类的运行次数对应用程序中的多个类进行排序。排序依据可以是降序排序,也可以是升序排序。
例如,终端获取到微信应用程序中的主界面类、通信类、社交圈类的运行次数分别为20次、10次、15次。则以降序对该多个类进行排序的结果为:主界面类、社交圈类、通信类。
在一些实施例中,如图2所示,根据每个类的运行次数对该多个类进行排序前,还可以包括以下步骤:
S150,根据每个类的运行次数判断该多个类中是否存在运行次数大于预设次数的类;
若存在运行次数大于预设次数的类,则根据每个类的运行次数对该多个类进行排序。
其中,预设次数可以是预先设置在终端中的一个数值。例如,预设次数可以为12次。终端获取到应用程序中每个类的运行次数后,根据每个类的运行次数判断应用程序的多个类中是否存在运行次数大于预设次数的类。若存在运行次数大于预设次数的类,则根据每个类的运行次数对该多个类进行排序。若不存在运行次数大于预设次数的类,则可以终止流程。
例如,终端获取到微信应用程序中的主界面类、通信类、社交圈类的运行次数分别为20次、10次、15次,预设次数为12次。则终端可以判断出主界面类和社交圈类的运行次数大于该预设次数。随后可以根据每个类的运行次数对该多个类进行排序。
S130,根据排序结果从该多个类中确定出目标类。
其中,可以预先设置应用程序中目标类的个数。例如,可以设置目标类的个数为1个,也可以设置目标类的个数为2个。终端对应用程序中的多个类进行排序后,根据预先设置的个数从该多个类中确定出目标类。目标类即为应用程序中需要进行预处理的类。
例如,预先设置的目标类的个数为2个,终端对多个类进行排序时根据降序排序,则目标类为排序靠前的2个类。若终端对多个类进行排序时根据升序排序,则目标类为排序靠后的2个类。例如,根据降序对微信应用程序中的多个类进行排序的结果为:主界面类、社交圈类、通信类,预先设置的目标类的个数为2个,则可以确定出目标类为主界面类和社交圈类。
S140,将该目标类加载到系统主进程中。
其中,终端在开机运行时会启动主进程。该主进程例如为Zygote(Zygote也可以称为虚拟机)。终端确定出应用程序中的目标类后,将该目标类加载到主进程中。例如,终端确定出微信应用程序中的目标类为主界面类和社交圈类,则终端可以将该主界面类和社交圈类加载到主进程Zygote中运行。
目标类为应用程序中运行次数较多的类,也即运行频率较高的类。终端将应用程序中的目标类加载到主进程中后,当再次运行该目标类对应的应用程序时,可以快速启动应用程序。从而,可以提高应用程序的启动速度,同时也可以减少用户的等待时间。
参考图4,图4为本发明实施例中应用程序的预处理方法的应用场景示意图。其中,应用程序包括四个类A、B、C、D。终端对该应用程序中的四个类进行排序后,确定的目标类为B和C。随后,终端将B和C两个类加载到系统主进程中进行运行。
在一些实施例中,如图2所示,将该目标类加载到系统主进程中之前,还可以包括以下步骤:
S160,判断当前系统主进程中已加载的类所占用的存储空间大小是否达到预设值;
若未达到预设值,则将该目标类加载到系统主进程中。
其中,预设值可以是预先设置在终端中的存储空间大小数值。例如,预设值可以为30M(兆字节)。预设值也可以根据终端总的运行存储空间大小来确定。例如,终端总的运行存储空间大小为2048M,预设值为该运行存储空间大小的2%,则预设值为40.96M。
终端确定出应用程序中的目标类后,获取当前已加载到系统主进程中的各个类所占用的存储空间大小。随后,判断当前系统主进程中已加载的各个类所占用的存储空间大小之和是否达到上述预设值。若未达到该预设值,则将确定出的目标类加载到系统主进程中。若达到该预设值,则可以终止流程。
由于加载到系统主进程中的类需要占用系统的运行存储空间,对系统的运行速度会产生一定的影响。因此,当加载到系统主进程中的类所占用的存储空间大小未达到预设值时,才将确定出的目标类加载到系统主进程中。从而,可以将加载到系统主进程中的类对系统运行所造成的影响控制在可接受范围内。
在一些实施例中,如图3所示,将该目标类加载到系统主进程中之后,还可以包括以下步骤:
S170,对该多个类的排序结果进行更新;
S180,根据更新后的排序结果从该多个类中确定出更新后的目标类;
S190,当检测到终端的运行状态满足预设条件时,将已加载到系统主进程中的目标类删除,并将该更新后的目标类加载到系统主进程中。
终端将目标类加载到系统主进程之后,可以按照一定频率对加载到系统主进程中的目标类进行更新,以使得加载到系统主进程中的目标类更符合用户的使用习惯。
其中,终端可以按照一定频率对应用程序中多个类的排序结果进行更新。例如,每小时更新一次。然后根据更新后的排序结果从该多个类中确定出更新后的目标类。终端对多个类的排序结果进行更新以及确定出更新后的目标类的方法可以参考步骤S120、S130的描述,在此不再赘述。
同时,终端可以实时监控终端自身的运行状态。当终端的运行状态满足预设条件时,将该应用程序中已加载到系统主进程中的目标类删除,并将更新后的目标类加载到系统主进程中。
其中,预设条件可以是针对终端中的应用程序所预先设置的条件。例如,预设条件可以是该应用程序退出后一个小时,并且终端熄屏5分钟。终端在运行状态满足预设条件时才对加载到系统主进程中的目标类进行更新,可以避免目标类的更新对应用程序的正常运行造成影响。
在一些实施例中,可以在应用程序中更新后的目标类与已加载到系统主进程中的目标类不同时,才对已加载到系统主进程中的目标类进行更新。
具体实施时,本发明不受所描述的各个步骤的执行顺序的限制,在不产生冲突的情况下,某些步骤还可以采用其它顺序进行或者同时进行。
由上可知,本发明实施例提供的应用程序的预处理方法,获取应用程序的多个类中每个类的运行次数;根据每个类的运行次数对该多个类进行排序;根据排序结果从该多个类中确定出目标类;将该目标类加载到系统主进程中。该方案将应用程序中运行频率较高的目标类加载到系统主进程中,当再次运行该目标类对应的应用程序时,可以快速启动该应用程序。从而,可以提高应用程序的启动速度。
本发明实施例还提供一种应用程序的预处理装置,该装置可以集成在终端中,该终端可以是智能手机、平板电脑等设备。
如图5所示,应用程序的预处理装置200可以包括:获取模块201、排序模块202、确定模块203、加载模块204。
获取模块201,用于获取应用程序的多个类中每个类的运行次数,该类为该应用程序中执行预设功能的封装代码。
其中,应用程序中的类可以是应用程序中的封装代码。该封装代码用于执行预设功能。例如,微信应用程序可以包括主界面类、通信类、社交圈类等多个类。其中,主界面类用于显示微信应用程序的主界面。通信类用于实现用户与其他用户之间的通信功能。社交圈类用于实现用户与其他用户之间的社交互动功能。
获取模块201可以获取应用程序的多个类中每个类在一段时间内的运行次数。例如,可以获取应用程序的每个类在近一个月内的运行次数,也可以获取应用程序的每个类从第一次开始运行以来的运行次数。
终端中安装有多个应用程序时,获取模块201可以针对每个应用程序分别获取该应用程序的多个类中每个类的运行次数,然后针对每个应用程序分别进行处理。
在一些实施例中,如图6所示,获取模块201包括:第一获取子模块2011、第二获取子模块2012。
第一获取子模块2011,用于获取应用程序的历史运行记录;
第二获取子模块2012,用于根据该历史运行记录获取该应用程序的多个类中每个类的运行次数。
其中,终端中可以设置日志文件。该日志文件用于记录应用程序的历史运行记录。终端中可以为所有应用程序设置一个日志文件,该日志文件记录所有应用程序的历史运行记录。终端中也可以为每个应用程序分别设置一个日志文件。
应用程序的历史运行记录可以包括应用程序中每个类每次运行时的时间、运行时长等数据。第一获取子模块2011可以获取应用程序的历史运行记录,然后第二获取子模块2012根据该历史运行记录获取该应用程序的多个类中每个类的运行次数。
排序模块202,用于根据每个类的运行次数对该多个类进行排序。
其中,获取模块201获取到应用程序中每个类的运行次数后,排序模块202根据每个类的运行次数对应用程序中的多个类进行排序。排序依据可以是降序排序,也可以是升序排序。
例如,获取模块201获取到微信应用程序中的主界面类、通信类、社交圈类的运行次数分别为20次、10次、15次。则排序模块202以降序对该多个类进行排序的结果为:主界面类、社交圈类、通信类。
在一些实施例中,如图7所示,应用程序的预处理装置200还包括:第一判断模块205。
第一判断模块205,用于根据每个类的运行次数判断该多个类中是否存在运行次数大于预设次数的类;
排序模块202,用于存在运行次数大于预设次数的类时,根据每个类的运行次数对该多个类进行排序。
其中,预设次数可以是预先设置在终端中的一个数值。例如,预设次数可以为12次。获取模块201获取到应用程序中每个类的运行次数后,第一判断模块205根据每个类的运行次数判断应用程序的多个类中是否存在运行次数大于预设次数的类。若存在运行次数大于预设次数的类,则排序模块202根据每个类的运行次数对该多个类进行排序。
例如,获取模块201获取到微信应用程序中的主界面类、通信类、社交圈类的运行次数分别为20次、10次、15次,预设次数为12次。则第一判断模块205可以判断出主界面类和社交圈类的运行次数大于该预设次数。随后排序模块202可以根据每个类的运行次数对该多个类进行排序。
确定模块203,用于根据排序结果从该多个类中确定出目标类。
其中,可以预先设置应用程序中目标类的个数。例如,可以设置目标类的个数为1个,也可以设置目标类的个数为2个。排序模块202对应用程序中的多个类进行排序后,确定模块203根据预先设置的个数从该多个类中确定出目标类。目标类即为应用程序中需要进行预处理的类。
例如,预先设置的目标类的个数为2个,排序模块202对多个类进行排序时根据降序排序,则目标类为排序靠前的2个类。若排序模块202对多个类进行排序时根据升序排序,则目标类为排序靠后的2个类。例如,排序模块202根据降序对微信应用程序中的多个类进行排序的结果为:主界面类、社交圈类、通信类,预先设置的目标类的个数为2个,则确定模块203可以确定出目标类为主界面类和社交圈类。
加载模块204,用于将该目标类加载到系统主进程中。
其中,终端在开机运行时会启动主进程。该主进程例如为Zygote(Zygote也可以称为虚拟机)。确定模块203确定出应用程序中的目标类后,加载模块204将该目标类加载到主进程中。例如,确定模块203确定出微信应用程序中的目标类为主界面类和社交圈类,则加载模块204可以将该主界面类和社交圈类加载到主进程Zygote中运行。
目标类为应用程序中运行次数较多的类,也即运行频率较高的类。加载模块204将应用程序中的目标类加载到主进程中后,当终端再次运行该目标类对应的应用程序时,可以快速启动应用程序。从而,可以提高应用程序的启动速度,同时也可以减少用户的等待时间。
在一些实施例中,如图8所示,应用程序的预处理装置200还包括:第二判断模块206。
第二判断模块206,用于判断当前系统主进程中已加载的类所占用的存储空间大小是否达到预设值;
加载模块204,用于在未达到预设值时,将该目标类加载到系统主进程中。
其中,预设值可以是预先设置在终端中的存储空间大小数值。例如,预设值可以为30M(兆字节)。预设值也可以根据终端总的运行存储空间大小来确定。例如,终端总的运行存储空间大小为2048M,预设值为该运行存储空间大小的2%,则预设值为40.96M。
确定模块203确定出应用程序中的目标类后,第二判断模块206获取当前已加载到系统主进程中的各个类所占用的存储空间大小。随后,第二判断模块206判断当前系统主进程中已加载的各个类所占用的存储空间大小之和是否达到上述预设值。若未达到该预设值,则加载模块204将确定出的目标类加载到系统主进程中。
由于加载到系统主进程中的类需要占用系统的运行存储空间,对系统的运行速度会产生一定的影响。因此,当加载到系统主进程中的类所占用的存储空间大小未达到预设值时,才将确定出的目标类加载到系统主进程中。从而,可以将加载到系统主进程中的类对系统运行所造成的影响控制在可接受范围内。
在一些实施例中,排序模块202还用于:对该多个类的排序结果进行更新;
确定模块203还用于:根据更新后的排序结果从该多个类中确定出更新后的目标类;
加载模块204还用于:当检测到终端的运行状态满足预设条件时,将已加载到系统主进程中的目标类删除,并将该更新后的目标类加载到系统主进程中。
加载模块204将目标类加载到系统主进程之后,可以按照一定频率对加载到系统主进程中的目标类进行更新,以使得加载到系统主进程中的目标类更符合用户的使用习惯。
其中,排序模块202可以按照一定频率对应用程序中多个类的排序结果进行更新。例如,每小时更新一次。然后确定模块203根据更新后的排序结果从该多个类中确定出更新后的目标类。
同时,加载模块204可以实时监控终端的运行状态。当终端的运行状态满足预设条件时,加载模块204将该应用程序中已加载到系统主进程中的目标类删除,并将更新后的目标类加载到系统主进程中。
其中,预设条件可以是针对终端中的应用程序所预先设置的条件。例如,预设条件可以是该应用程序退出后一个小时,并且终端熄屏5分钟。在终端的运行状态满足预设条件时才对加载到系统主进程中的目标类进行更新,可以避免目标类的更新对应用程序的正常运行造成影响。
在一些实施例中,可以在应用程序中更新后的目标类与已加载到系统主进程中的目标类不同时,才对已加载到系统主进程中的目标类进行更新。
具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现。
由上可知,本发明实施例提供的应用程序的预处理装置200,通过获取模块201获取应用程序的多个类中每个类的运行次数;排序模块202根据每个类的运行次数对该多个类进行排序;确定模块203根据排序结果从该多个类中确定出目标类;加载模块204将该目标类加载到系统主进程中。该方案将应用程序中运行频率较高的目标类加载到系统主进程中,当再次运行该目标类对应的应用程序时,可以快速启动该应用程序。从而,可以提高应用程序的启动速度。
本发明实施例还提供一种终端,该终端可以是智能手机、平板电脑等设备。
如图9所示,终端300可以包括:获取模块301、排序模块302、确定模块303、加载模块304。
获取模块301,用于获取应用程序的多个类中每个类的运行次数,该类为该应用程序中执行预设功能的封装代码;
排序模块302,用于根据每个类的运行次数对该多个类进行排序;
确定模块303,用于根据排序结果从该多个类中确定出目标类;
加载模块304,用于将该目标类加载到系统主进程中。
在一些实施例中,获取模块301包括:第一获取子模块、第二获取子模块。
第一获取子模块,用于获取应用程序的历史运行记录;
第二获取子模块,用于根据该历史运行记录获取该应用程序的多个类中每个类的运行次数。
在一些实施例中,终端300还包括:第一判断模块。
第一判断模块,用于根据每个类的运行次数判断该多个类中是否存在运行次数大于预设次数的类;
该排序模块302,用于在存在运行次数大于预设次数的类时,根据每个类的运行次数对该多个类进行排序。
在一些实施例中,终端300还包括:第二判断模块。
第二判断模块,用于判断当前系统主进程中已加载的类所占用的存储空间大小是否达到预设值;
该加载模块304,用于在未达到预设值时,将该目标类加载到系统主进程中。
在一些实施例中,该排序模块302,还用于对该多个类的排序结果进行更新;
该确定模块303,还用于根据更新后的排序结果从该多个类中确定出更新后的目标类;
该加载模块304,还用于当检测到终端的运行状态满足预设条件时,将已加载到系统主进程中的目标类删除,并将该更新后的目标类加载到系统主进程中。
本发明实施例还提供另一种终端。如图10所示,终端400可以包括射频(RF,RadioFrequency)电路401、包括有一个或一个以上计算机可读存储介质的存储器402、输入单元403、显示单元404、传感器405、音频电路406、无线保真(WiFi,Wireless Fidelity)模块407、包括有一个或者一个以上处理核心的处理器408、以及电源409等部件。本领域技术人员可以理解,图10中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
射频电路401可以通过无线网络与网络设备或其他电子设备通信,完成与网络设备或其他电子设备之间的信息收发。
存储器402可用于存储应用程序和数据。存储器402存储的应用程序中包含有可执行程序代码。应用程序可以组成各种功能模块。处理器408通过运行存储在存储器402的应用程序,从而执行各种功能应用以及数据处理。
输入单元403可用于接收用户输入的字符信息或用户特征信息(例如指纹)。其中,输入单元403可以包括指纹识别模组和触摸屏。指纹识别模组用于采集用户的指纹信息。触摸屏用于接收用户的触摸操作。
显示单元404可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口。
终端还可包括至少一种传感器405,例如光传感器、运动传感器以及其他传感器。
音频电路406可通过扬声器、传声器提供用户与终端之间的音频接口。
无线保真(WiFi)属于短距离无线传输技术,终端通过无线保真模块407可以与其他终端或服务器进行通信。
处理器408是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器402内的应用程序,以及调用存储在存储器402内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。
终端还包括给各个部件供电的电源409(例如电池)。
尽管图10中未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本实施例中,终端中的处理器408会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行程序代码加载到存储器402中,并由处理器408来运行存储在存储器402中的应用程序,从而实现各种功能:
获取应用程序的多个类中每个类的运行次数,该类为该应用程序中执行预设功能的封装代码;
根据每个类的运行次数对该多个类进行排序;
根据排序结果从该多个类中确定出目标类;
将该目标类加载到系统主进程中。
在一些实施例中,获取应用程序的多个类中每个类的运行次数时,处理器408用于:获取应用程序的历史运行记录;根据该历史运行记录获取该应用程序的多个类中每个类的运行次数。
在一些实施例中,根据每个类的运行次数对该多个类进行排序前,处理器408还用于:根据每个类的运行次数判断该多个类中是否存在运行次数大于预设次数的类;若存在运行次数大于预设次数的类,则根据每个类的运行次数对该多个类进行排序。
在一些实施例中,将该目标类加载到系统主进程中之前,处理器408还用于:判断当前系统主进程中已加载的类所占用的存储空间大小是否达到预设值;若未达到预设值,则将该目标类加载到系统主进程中。
在一些实施例中,将该目标类加载到系统主进程中之后,处理器408还用于:对该多个类的排序结果进行更新;根据更新后的排序结果从该多个类中确定出更新后的目标类;当检测到终端的运行状态满足预设条件时,将已加载到系统主进程中的目标类删除,并将该更新后的目标类加载到系统主进程中。
上述实施例中,对各个实施例的描述都各有侧重,某些实施例中没有详细描述的部分,可以参见前面对应用程序的预处理方法的详细描述,在此不再赘述。
由上可知,本发明实施例提供了一种终端,该终端获取应用程序的多个类中每个类的运行次数;根据每个类的运行次数对该多个类进行排序;根据排序结果从该多个类中确定出目标类;将该目标类加载到系统主进程中。该方案将应用程序中运行频率较高的目标类加载到系统主进程中,当再次运行该目标类对应的应用程序时,可以快速启动该应用程序。从而,可以提高应用程序的启动速度。
需要说明的是,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的应用程序的预处理方法、装置及终端进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种应用程序的预处理方法,其特征在于,包括:
获取应用程序的多个类中每个类的运行次数,所述类为所述应用程序中执行预设功能的封装代码;
根据每个类的运行次数对所述多个类进行排序;
根据排序结果从所述多个类中确定出目标类;
将所述目标类加载到系统主进程中;
对所述多个类的排序结果进行更新;
根据更新后的排序结果从所述多个类中确定出更新后的目标类;
当检测到终端的运行状态满足预设条件,且所述更新后的目标类与所述目标类不同时,将已加载到系统主进程中的目标类删除,并将所述更新后的目标类加载到系统主进程中。
2.根据权利要求1所述的应用程序的预处理方法,其特征在于,所述获取应用程序的多个类中每个类的运行次数的步骤包括:
获取应用程序的历史运行记录;
根据所述历史运行记录获取所述应用程序的多个类中每个类的运行次数。
3.根据权利要求1所述的应用程序的预处理方法,其特征在于,所述根据每个类的运行次数对所述多个类进行排序的步骤前,还包括:
根据每个类的运行次数判断所述多个类中是否存在运行次数大于预设次数的类;
若存在运行次数大于预设次数的类,则根据每个类的运行次数对所述多个类进行排序。
4.根据权利要求1至3中任一项所述的应用程序的预处理方法,其特征在于,将所述目标类加载到系统主进程中的步骤前,还包括:
判断当前系统主进程中已加载的类所占用的存储空间大小是否达到预设值;
若未达到预设值,则将所述目标类加载到系统主进程中。
5.一种应用程序的预处理装置,其特征在于,包括:
获取模块,用于获取应用程序的多个类中每个类的运行次数,所述类为所述应用程序中执行预设功能的封装代码;排序模块,用于根据每个类的运行次数对所述多个类进行排序;
确定模块,用于根据排序结果从所述多个类中确定出目标类;
加载模块,用于将所述目标类加载到系统主进程中;
所述排序模块,还用于对所述多个类的排序结果进行更新;
所述确定模块,还用于根据更新后的排序结果从所述多个类中确定出更新后的目标类;
所述加载模块,还用于当检测到终端的运行状态满足预设条件,且所述更新后的目标类与所述目标类不同时,将已加载到系统主进程中的目标类删除,并将所述更新后的目标类加载到系统主进程中。
6.根据权利要求5所述的应用程序的预处理装置,其特征在于,所述获取模块包括:
第一获取子模块,用于获取应用程序的历史运行记录;
第二获取子模块,用于根据所述历史运行记录获取所述应用程序的多个类中每个类的运行次数。
7.根据权利要求5所述的应用程序的预处理装置,其特征在于,还包括:
第一判断模块,用于根据每个类的运行次数判断所述多个类中是否存在运行次数大于预设次数的类;
所述排序模块,用于在存在运行次数大于预设次数的类时,根据每个类的运行次数对所述多个类进行排序。
8.根据权利要求5至7中任一项所述的应用程序的预处理装置,其特征在于,还包括:
第二判断模块,用于判断当前系统主进程中已加载的类所占用的存储空间大小是否达到预设值;
所述加载模块,用于在未达到预设值时,将所述目标类加载到系统主进程中。
9.一种终端,其特征在于,包括:
触摸屏,用于接收用户的触摸操作;
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1至4中任一项所述的应用程序的预处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710294923.6A CN107122214B (zh) | 2017-04-28 | 2017-04-28 | 应用程序的预处理方法、装置及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710294923.6A CN107122214B (zh) | 2017-04-28 | 2017-04-28 | 应用程序的预处理方法、装置及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107122214A CN107122214A (zh) | 2017-09-01 |
CN107122214B true CN107122214B (zh) | 2020-08-04 |
Family
ID=59725889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710294923.6A Expired - Fee Related CN107122214B (zh) | 2017-04-28 | 2017-04-28 | 应用程序的预处理方法、装置及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107122214B (zh) |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7398523B2 (en) * | 2004-08-19 | 2008-07-08 | International Business Machines Corporation | Adaptive class loading |
US9477495B2 (en) * | 2006-08-17 | 2016-10-25 | International Business Machines Corporation | Conservative class preloading for real time Java execution |
US8291503B2 (en) * | 2009-06-05 | 2012-10-16 | Microsoft Corporation | Preloading modules for performance improvements |
US9507613B2 (en) * | 2012-03-30 | 2016-11-29 | Oracle International Corporation | Methods and apparatus for dynamically preloading classes |
CN103577212B (zh) * | 2012-08-08 | 2017-10-24 | 腾讯科技(深圳)有限公司 | 系统启动预加载方法及装置 |
CN103631612B (zh) * | 2012-08-23 | 2017-09-29 | 腾讯科技(深圳)有限公司 | 启动操作系统的方法与装置 |
CN103677922B (zh) * | 2013-12-13 | 2018-01-09 | 北京奇虎科技有限公司 | 对应用软件进行启动的方法和装置 |
CN103793249A (zh) * | 2014-01-24 | 2014-05-14 | 北京航空航天大学 | 一种Java虚拟机中类库的多线程预加载方法 |
CN105302588A (zh) * | 2014-07-09 | 2016-02-03 | 联想移动通信科技有限公司 | 一种终端应用程序加载方法、装置及终端 |
CN104239102B (zh) * | 2014-09-15 | 2016-08-24 | 腾讯科技(深圳)有限公司 | 应用程序运行方法和装置 |
CN104598270B (zh) * | 2014-12-22 | 2018-06-01 | 北京像素软件科技股份有限公司 | 一种多人网络游戏中资源加载的方法和装置 |
KR102443069B1 (ko) * | 2015-08-12 | 2022-09-14 | 삼성전자주식회사 | 어플리케이션을 실행하기 위한 장치 및 방법 |
CN106066805B (zh) * | 2016-05-31 | 2020-03-17 | 宇龙计算机通信科技(深圳)有限公司 | 一种终端应用程序启动的方法、装置及终端 |
CN106250529A (zh) * | 2016-08-05 | 2016-12-21 | 成都佳荣科技有限公司 | 网页页面加载方法 |
CN106406966B (zh) * | 2016-10-31 | 2020-04-07 | 维沃移动通信有限公司 | 一种应用程序的预加载方法及移动终端 |
-
2017
- 2017-04-28 CN CN201710294923.6A patent/CN107122214B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN107122214A (zh) | 2017-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107329750A (zh) | 应用程序中广告页面的识别方法、跳转方法及移动终端 | |
CN105989122A (zh) | 一种应用推荐方法及装置 | |
CN105760199B (zh) | 一种应用资源加载方法及其设备 | |
CN109587252A (zh) | 运营商参数的加载方法、装置、电子设备及存储介质 | |
US10949573B2 (en) | Unlocking control methods and related products | |
CN105867735A (zh) | 一种应用程序排序显示的方法、装置及移动设备 | |
CN108763564A (zh) | 应用推送方法、装置及计算机可读存储介质 | |
CN108921918B (zh) | 视频创建方法及相关装置 | |
CN107786463B (zh) | 一种网络数据的下载方法及装置和介质产品 | |
CN111258680A (zh) | 资源加载方法和装置、存储介质及电子装置 | |
CN105005489B (zh) | 一种终端设备的启动方法及终端设备 | |
US20200137525A1 (en) | Method of Identifying User Location, Storage Medium and Electronic Device | |
CN107450951B (zh) | 应用程序处理方法、装置、存储介质和终端 | |
CN110652728A (zh) | 一种游戏资源管理方法、装置、电子设备及存储介质 | |
CN106598649A (zh) | 一种应用程序安装方法、装置及电子设备 | |
EP3446240B1 (en) | Electronic device and method for outputting thumbnail corresponding to user input | |
CN107391361B (zh) | 一种pos终端自动测试方法及装置 | |
CN107291543B (zh) | 应用程序处理方法、装置、存储介质和终端 | |
CN107122214B (zh) | 应用程序的预处理方法、装置及终端 | |
US10031734B2 (en) | Device and method for generating application package | |
CN107168648B (zh) | 文件存储方法、装置及终端 | |
CN112534409A (zh) | 电子设备及其操作方法 | |
CN112912832A (zh) | 应用推送方法、装置、移动终端及存储介质 | |
CN113885969A (zh) | 嵌入式设备、嵌入式软件加载方法与存储介质 | |
CN113407509A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Applicant after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Applicant before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200804 |