一种应用程序的安装包启动方法、装置及电子设备与流程

文档序号:19570594发布日期:2019-12-31 18:53阅读:252来源:国知局
一种应用程序的安装包启动方法、装置及电子设备与流程

本发明涉及应用程序开发技术领域,尤其涉及一种应用程序的安装包启动方法、装置及电子设备。



背景技术:

随着科学技术的发展,电子产品的普及率越来越广。安卓系统(android)作为常见的电子产品的操作系统,普遍应用于各类电子产品。电子产品中的各种应用程序为人们的生活提供了诸多便利。但是安卓系统从启动应用程序到呈现应用程序的用户界面(userinterface,ui)所花费的时间较长。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种应用程序的安装包启动方法、装置及电子设备。

本发明的第一方面,提供了一种应用程序的安装包启动方法,包括:

接收用户输入的启动指令;其中,所述启动指令为启动应用程序的安装包的指令,所述安装包中包括用户界面线程和代码编译线程;

根据所述启动指令,启动所述用户界面线程,并将所述代码编译线程从运行状态切换为暂停状态;

判断所述用户界面线程是否启动完成;

若所述用户界面线程启动完成,将所述代码编译线程从所述暂停状态切换为所述运行状态。

在一种可选的方式中,所述将代码编译线程从运行状态切换为暂停状态,包括:

调用虚拟机的设定接口中的第一目标方法;

采用所述第一目标方法将所述代码编译线程从所述运行状态切换为所述暂停状态。

在一种可选的方式中,所述采用所述第一目标方法将所述代码编译线程从所述运行状态切换为所述暂停状态,包括:

采用jit::scopedjitsuspend*sjs=newscopedjitsuspend()方法将所述代码编译线程从所述运行状态切换为所述暂停状态。

在一种可选的方式中,所述将所述代码编译线程从所述暂停状态切换为所述运行状态,包括:

调用所述设定接口中的第二目标方法;

采用所述第二目标方法将所述代码编译线程从所述暂停状态切换为所述运行状态;

在一种可选的方式中,所述采用所述第二目标方法将所述代码编译线程从所述暂停状态切换为所述运行状态,包括:

采用deletesjs方法将所述代码编译线程从所述暂停状态切换为所述运行状态。

在一种可选的方式中,判断所述用户界面线程是否启动完成,包括:

判断中央处理器的占用率是否大于设定值;

所述占用率低于所述设定值,判定所述用户界面线程启动完成。

在一种可选的方式中,所述将所述代码编译线程从所述暂停状态切换为所述运行状态,包括:

获取所述用户针对所述应用程序的历史操作记录;

根据所述历史操作记录,获取用户界面中的每个功能模块的优先级;其中,所述用户界面是在所述用户界面线程启动完成时生成的;

根据所述优先级对所述每个功能模块进行代码编译。

在一种可选的方式中,所述根据所述历史操作记录,获取用户界面中的每个功能模块的优先级,包括:

根据用户对所述每个功能模块的使用频率,得到所述每个功能模块的优先级。

在一种可选的方式中,所述根据所述优先级对所述每个功能模块进行代码编译,包括:

按照优先级由高到低的顺序对所述每个功能模块进行代码编译。

本发明的第二方面,提供了一种应用程序的安装包启动装置,包括:

启动指令接收模块,用于接收用户输入的启动指令;其中,所述启动指令为启动应用程序的安装包的指令,所述安装包中包括用户界面线程和代码编译线程;

代码编译线程暂停模块,用于根据所述启动指令,启动所述用户界面线程,并将所述代码编译线程从运行状态切换为暂停状态;

代码编译线程恢复模块,用于判断所述用户界面线程是否启动完成;

若所述用户界面线程启动完成,将所述代码编译线程从所述暂停状态切换为所述运行状态。

在一种可选的方式中,所述代码编译线程暂停模块,用于:

调用虚拟机的设定接口中的第一目标方法;

采用所述第一目标方法将所述代码编译线程从所述运行状态切换为所述暂停状态。

在一种可选的方式中,所述代码编译线程暂停模块,用于:

采用jit::scopedjitsuspend*sjs=newscopedjitsuspend()方法将所述代码编译线程从所述运行状态切换为所述暂停状态。

在一种可选的方式中,所述代码编译线程恢复模块,用于:

调用所述设定接口中的第二目标方法;

采用所述第二目标方法将所述代码编译线程从所述暂停状态切换为所述运行状态;

在一种可选的方式中,所述代码编译线程恢复模块,用于:

采用deletesjs方法将所述代码编译线程从所述暂停状态切换为所述运行状态。

在一种可选的方式中,所述代码编译线程恢复模块,用于:

判断中央处理器的占用率是否大于设定值;

所述占用率低于所述设定值,判定所述用户界面线程启动完成。

在一种可选的方式中,所述代码编译线程恢复模块,用于:

获取所述用户针对所述应用程序的历史操作记录;

根据所述历史操作记录,获取用户界面中的每个功能模块的优先级;其中,所述用户界面是在所述用户界面线程启动完成时生成的;

根据所述优先级对所述每个功能模块进行代码编译。

在一种可选的方式中,所述代码编译线程恢复模块,用于:

根据用户对所述每个功能模块的使用频率,得到所述每个功能模块的优先级。

在一种可选的方式中,所述代码编译线程恢复模块,用于:

按照优先级由高到低的顺序对所述每个功能模块进行代码编译。

本发明的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的安装包启动方法的步骤。

本发明的第四方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的安装包启动方法的步骤。

本申请实施例中提供的技术方案,至少具有如下技术效果或优点:

在上述方案中,在启动用户界面线程时,能够主动地将默认同时启动的代码编译线程从运行状态切换为暂停状态,从而保证代码编译线程在用户界面线程启动时不占用用户界面线程在中央处理器中的时间片资源,使得用户界面线程在启动时能够充分使用中央处理器中的时间片资源,从而提高用户界面线程的启动速度,有效减少安卓系统从启动应用程序到呈现应用程序的用户界面所花费的时间。

进一步地,当用户界面线程启动完成时,可以将代码编译线程从暂停状态切换为运行状态,能够确保应用程序的正常使用。按照优先级由高到低的顺序对用户界面中的每个功能模块进行代码编译,能够提高代码编译线程的启动效率,避免优先启动用户界面线程带来的应用程序功能受限。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例提供的一种应用程序的安装包启动方法的流程图。

图2示出了根据本发明一个实施例提供的常见的安装包启动线程的示意图。

图3示出了根据本发明一个实施例提供的安装包启动线程的示意图。

图4示出了根据本发明一个实施例提供的应用程序的用户界面的示意图。

图5示出了根据本发明一个实施例提供的应用程序的安装包启动装置的功能模块框图。

图标:

20-应用程序的安装包启动装置;21-启动指令接收模块;22-代码编译线程暂停模块;23-代码编译线程暂停模块。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明实施例提供了一种应用程序的安装包启动方法、装置及电子设备,用以改善现有的从启动应用程序到呈现应用程序的用户界面所花费的时间较长的技术问题。

本发明实施例提供的应用程序的安装包启动方法、装置及电子设备为解决上述技术问题,总体思路如下:

接收用户输入的启动指令,其中,启动指令为启动应用程序的安装包的指令,安装包中包括用户界面线程和代码编译线程;根据启动指令,启动用户界面线程,并将代码编译线程从运行状态切换为暂停状态;判断用户界面线程是否启动完成;若用户界面线程启动完成,将代码编译线程从暂停状态切换为运行状态。在启动用户界面线程时,能够主动地将默认同时启动的代码编译线程从运行状态切换为暂停状态,从而保证代码编译线程在用户界面线程启动时不占用用户界面线程在中央处理器中的时间片资源,使得用户界面线程在启动时能够充分使用中央处理器中的时间片资源,从而提高用户界面线程的启动速度,有效减少安卓系统从启动应用程序到呈现应用程序的用户界面所花费的时间。

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。

作为一种可选的实施例,图1为根据本发明一个实施例提供的应用程序的安装包启动方法的流程图,该方法包括以下步骤:

s21,接收用户输入的启动指令,其中,启动指令为启动应用程序的安装包的指令,安装包中包括用户界面线程和代码编译线程。

s22,根据启动指令,启动用户界面线程,并将代码编译线程从运行状态切换为暂停状态。

s23,判断用户界面线程是否完成,若用户界面线程启动完成,将代码编译线程从暂停状态切换为运行状态。

可以理解,上述步骤的执行主体为应用程序,而应用程序是安装于电子设备中的,因此上述步骤的执行主体也可以为电子设备。为便于后续说明,以应用程序为执行主体进行上述步骤的说明。

对于操作系统为安卓系统的应用程序而言,发明人发现应用程序的安装包从开始启动到呈现用户界面所花费的时间较长。发明人对这一现象进行了分析,具体地,如图2所示,通过对安装包启动过程的源码进行分析发现,常见的应用程序的安装包在启动时,会默认同时启动两个线程:1)用户界面线程,2)代码编译线程。其中,用户界面线程用于将应用程序的用户界面进行展示,例如,展示应用程序的用户界面上的功能模块等。而代码编译线程用于将外部输入指令编译成安卓系统能够识别的操作指令,例如,代码编译线程能够将用户点触电子设备屏幕的动作指令编译成安卓系统能够识别的操作指令。

进一步地,发明人发现上面两种线程在开启时均会暂用中央处理器的时间片资源,但由于代码编译线程属于计算密集型操作,因此会占用中央处理器的大量时间片资源,在这种情况下,中央处理器分配给用户界面线程的时间片资源就相对较少,如此,使得用户界面线程从开始启动到启动完成的时间较长,从而导致应用程序在启动时会出现一段时间的黑屏或者白屏,严重影响应用程序的使用效率和用户体验,当用户在一些紧急情况下需要立马开启应用程序时,常见的安装包启动方法难以使得应用程序的用户界面快速显示在用户面前。

基于上述分析,发明人发现,若要提高用户界面线程的启动效率,减少用户界面线程从开始启动到完成启动的耗时,需要将代码编译线程所占用的时间片资源分配给用户界面线程,又由于代码编译线程是在安装包启动时默认启动的,应用程序没有权限对代码编译线程进行控制,因此,可以通过图1所示的方法为应用程序增设控制代码编译线程的权限,从而使得应用程序能够在启动安装包时主动地将默认同时启动的代码编译线程从运行状态切换为暂停状态,从而保证代码编译线程在用户界面线程启动时不占用用户界面线程在中央处理器中的时间片资源,使得用户界面线程在启动时能够充分使用中央处理器中的时间片资源,从而提高用户界面线程的启动速度,有效减少应用程序从启动到呈现的用户界面所花费的时间。

在s21中,启动指令为用户输入的用于启动应用程序的指令,启动应用程序可以理解为启动应用程序的安装包,在本发明实施例中,安装包中包括用户界面线程和代码编译线程。

当应用程序接收到用户输入的启动指令时,即可开始启动安装包。

在本发明实施例中,启动指令可以为手指点触指令,也可以为语音指令,例如,可以通过手指点触电子设备界面上的应用程序图标,以实现启动指令的输入。又例如,还可以通过电子设备的麦克风输入“请打开应用程序a”的语音指令,启动指令的类型在本发明实施例中不作限定。

在s22中,当应用程序接收到启动指令时,开始启动安装包。具体地,启动安装包中的用户界面线程,并将代码编译线程从运行状态切换为暂停状态。可以理解,在常见的安装包启动过程中,用户界面线程和代码编译线程是默认同时启动的,而在s22中,应用程序会暂停代码编译线程的启动,具体地,将代码编译线程从运行状态切换为暂停状态可以理解为应用程序在接收到启动指令时就禁止代码编译线程的开启,也可以理解为当代码编译线程准备启动时应用程序阻止代码编译线程的启动,还可以理解为代码编译线程在启动之后的短暂时间内,应用程序暂停代码编译线程。

在具体实施过程中,将代码编译线程从运行状态切换为暂停状态,具体可以包括以下步骤:

s221,调用虚拟机的设定接口中的第一目标方法。

s222,采用第一目标方法将代码编译线程从运行状态切换为暂停状态。

在安卓系统中,由于代码编译线程是在安装包启动时默认启动的,因此应用程序自身没有权限直接控制代码编译线程的启动或暂停,为此,本发明实施例可以在虚拟机中增设一个设定接口,使得应用程序能够调用设定接口中的第一目标方法,并采用第一目标方法将代码编译线程从运行状态切换为暂停状态。如此,能够为应用程序分配一个直接控制代码编译线程启动或暂停的权限,使得应用程序能够从设定接口中调用第一目标方法,并采用第一目标方法将代码编译线程从运行状态切换为暂停状态,使得中央处理器中的时间片资源得到释放,进而使得用户界面线程能够充分使用中央处理器的时间片资源,提高用户界面线程的启动速度。

在本发明实施例中,第一目标方法可以为jit::scopedjitsuspend*sjs=newscopedjitsuspend()方法,其中,scopedjitsuspend是虚拟机提供的一个暂停恢复的类。

如图3所示,在具体实施过程中,应用程序通过调用虚拟机的设定接口,反射获取jit::scopedjitsuspend*sjs=newscopedjitsuspend()方法,并采用该方法将代码编译线程从运行状态切换为暂停状态,能够使得用户界面线程在启动时能够充分使用中央处理器的时间片资源,提高了用户界面线程的启动速度,减少了应用程序从启动到展示用户界面的时间。

在s23中,当用户界面线程启动完成时,应用程序再次调用虚拟机的设定接口,反射获取设定接口中的第二目标方法,并采用第二目标方法将代码编译线程从暂停状态切换为运行状态。

请集合参阅图3,假设用户界面线程的启动时刻为15:00:00,那么在15:00:00这个时刻,应用程序采用jit::scopedjitsuspend*sjs=newscopedjitsuspend()方法暂停代码编译线程。

假设用户界面线程启动完成的时刻为15:00:01,则应用程序在15:00:01这个时刻采用第二目标方法恢复代码编译线程。在具体实施过程中,第二目标方法可以为deletesjs方法。

应当理解,第一目标方法和第二目标方法的具体方法还可以包括其他情况,只要保证第一目标方法能够实现对代码编译线程的暂停,保证第二目标方法能够实现对代码编译线程的恢复即可。

在s23中,判断用户界面线程是否完成,具体包括以下步骤:

s231,判断中央处理器的占用率是否大于设定值。

s232,若占用率小于等于设定值,判定用户界面线程启动完成。

s233,若占用率大于设定值,判定用户界面线程未启动完成。

在s231中,占用率为中央处理器的时间片资源占用率,设定值用于表征安卓系统占用中央处理器的时间片资源的比例。

具体地,应用程序的安装包在启动时,应用程序会和安卓系统进行交互,安卓系统也会占用中央处理器的时间片资源,在这种情况下,设定值可以表征安卓系统对中央处理器时间片资源的占用率。在具体实施时,设定值可以取20%,也可以取其他值,应当理解,设定值的选取与安卓系统的版本、中央处理器的型号有关,在此不作限定。

在s232中,假设安卓系统仅启动用户界面线程时,中央处理器的时间片资源的20%分配给安卓系统,80%分配给用户界面线程,那么设定值可以为20%。具体地,若用户界面线程启动完成,中央处理器会释放80%时间片资源,在这个情况下,中央处理器的占用率为20%,在这种情况下,表明用户界面线程启动完成。

在s233中,若用户界面线程未启动完成,则用户界面线程和安卓系统会同时占用中央处理器的时间片资源,在这种情况下,中央处理器的时间片资源的占用率会大于设定值20%,因此,若占用率大于设定值,则判定用户界面线程未启动完成。

可以理解,上述通过中央处理器的占用率判断用户界面线程是否启动完成的方法,能够将安卓系统对中央处理器的时间片资源的占用考虑在内,如此,能够准确确定出用户界面线程是否启动完成,为后续恢复代码编译线程提供准确的数据基础。

在s23中,应用程序将代码编译线程从暂停状态切换为运行状态时,代码编译线程开始启动。进一步地,由于代码编译线程是在用户界面线程启动完成后才启动的,因此,为了提高代码编译的效率,使得用户能够快速地基于用户界面使用应用程序,本发明实施例还对代码编译线程进行了改进。

在具体实施过程中,将代码编译线程从暂停状态切换为运行状态,具体包括以下步骤:

s234,获取用户针对应用程序的历史操作记录。

s235,根据历史操作记录,获取用户界面中的每个功能模块的优先级。

s236,根据优先级对每个功能模块进行代码编译。

在s234中,应用程序会获取用户针对应用程序的历史操作记录。在发明实施例中,历史操作记录可以理解为用户对用户界面上的功能模块的使用频率,请结合参阅图4,用户界面中包括“好友列表”、“匹配游戏”、“商店”和“咨询”4个功能模块。

获取用户针对应用程序的历史操作记录,可以获取用户在预设时段内针对应用程序的历史操作记录,例如,可以获取用户在一周内对应用程序的历史操作记录,也可以获取用户在三天内对应用程序的历史操作记录,在此对预设时段不作限定。

又例如,获取用户在三天内对应用程序的历史操作记录如下:

点击“好友列表”4次;

点击“匹配游戏”24次;

点击“商店”2次;

点击“咨询”1次。

可以理解,通过上述历史操作记录,能够确定出用户在三天内对应用程序的4个功能模块的使用频率。

在s235中,根据历史操作记录,获取用户界面中的每个功能模块的优先级,具体包括:根据用户对每个功能模块的使用频率,得到每个功能模块的优先级。

以s234中的示例进行说明,得到每个功能模块的优先级为:

“匹配游戏”>“好友列表”>“商店”>“咨询”。

通过上述优先级可以得到,用户对应用程序中的“匹配游戏”模块使用频率最高,因此“匹配游戏”模块的优先级最高。

在s236中,根据优先级对每个功能模块进行代码编译,具体包括:按照优先级由高到低的顺序对每个功能模块进行代码编译。

以s234中的示例进行说明,按照优先级由高到低的顺序对每个功能模块进行代码编译,首先对“匹配游戏”模块进行代码编译,如此,当用户界面展示时,若用户点击“匹配游戏”模块,应用程序能够迅速响应,避免了用户界面只能展示而不能及时使用的问题。当应用程序基于完成的代码编译响应用户点击“匹配游戏”模块的操作指令之后,能够在后台继续对“好友列表”模块、“商店”模块和“咨询”模块进行代码编译,且不会影响游戏匹配和游戏进程,如此,能够按照优先级由高到低的顺序依次对每个功能模块进行代码编译,既能够保证用户界面能够快速展示,又能够保证用户在展示出的用户界面上的操作。

可以理解,上述方法能够通过虚拟机的设定接口为应用程序提供暂停和恢复代码编译线程的权限,如此,能够使得应用程序在启动安装包时将默认启动的代码编译线程暂停,使得用户界面线程能够充分使用中央处理器的时间片资源,提高用户界面线程的启动速度,使得用户界面能够快速地展示。此外,在用户界面启动完成后,应用程序还能够根据用户对用户界面上的功能模块的使用频率依次对功能模块进行代码编译,有效提高用户界面上常用功能模块的响应速度,使得应用程序不仅能够快速地展示用户界面,还能够提高代码编译的效率,使得用户能够及时使用用户界面上的功能模块。

作为一种可选的实施例,图5示出了本为根据本发明一个实施例提供的一种应用程序的安装包启动装置20的模块框图,应用程序的安装包启动装置20包括:

启动指令接收模块21,用于接收用户输入的启动指令;其中,所述启动指令为启动应用程序的安装包的指令,所述安装包中包括用户界面线程和代码编译线程;

代码编译线程暂停模块22,用于根据所述启动指令,启动所述用户界面线程,并将所述代码编译线程从运行状态切换为暂停状态;

代码编译线程恢复模块23,用于判断所述用户界面线程是否启动完成;

若所述用户界面线程启动完成,将所述代码编译线程从所述暂停状态切换为所述运行状态。

在一种可选的方式中,所述代码编译线程暂停模块22,用于:

调用虚拟机的设定接口中的第一目标方法;

采用所述第一目标方法将所述代码编译线程从所述运行状态切换为所述暂停状态。

在一种可选的方式中,所述代码编译线程暂停模块22,用于:

采用jit::scopedjitsuspend*sjs=newscopedjitsuspend()方法将所述代码编译线程从所述运行状态切换为所述暂停状态。

在一种可选的方式中,所述代码编译线程恢复模块23,用于:

调用所述设定接口中的第二目标方法;

采用所述第二目标方法将所述代码编译线程从所述暂停状态切换为所述运行状态;

在一种可选的方式中,所述代码编译线程恢复模块23,用于:

采用deletesjs方法将所述代码编译线程从所述暂停状态切换为所述运行状态。

在一种可选的方式中,所述代码编译线程恢复模块23,用于:

判断中央处理器的占用率是否大于设定值;

所述占用率低于所述设定值,判定所述用户界面线程启动完成。

在一种可选的方式中,所述代码编译线程恢复模块23,用于:

获取所述用户针对所述应用程序的历史操作记录;

根据所述历史操作记录,获取用户界面中的每个功能模块的优先级;其中,所述用户界面是在所述用户界面线程启动完成时生成的;

根据所述优先级对所述每个功能模块进行代码编译。

在一种可选的方式中,所述代码编译线程恢复模块23,用于:

根据用户对所述每个功能模块的使用频率,得到所述每个功能模块的优先级。

在一种可选的方式中,所述代码编译线程恢复模块23,用于:

按照优先级由高到低的顺序对所述每个功能模块进行代码编译。

基于与前述实施例中同样的发明构思,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文任一所述方法的步骤。

基于与前述实施例中同样的发明构思,本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前文任一所述方法的步骤。

本申请实施例中提供的技术方案,至少具有如下技术效果或优点:

在启动用户界面线程时,能够主动地将默认同时启动的代码编译线程从运行状态切换为暂停状态,从而保证代码编译线程在用户界面线程启动时不占用用户界面线程在中央处理器中的时间片资源,使得用户界面线程在启动时能够充分使用中央处理器中的时间片资源,从而提高用户界面线程的启动速度,有效减少安卓系统从启动应用程序到呈现应用程序的用户界面所花费的时间。进一步地,在用户界面启动完成后,应用程序还能够根据用户对用户界面上的功能模块的使用频率依次对功能模块进行代码编译,有效提高用户界面上常用功能模块的响应速度,使得应用程序不仅能够快速地展示用户界面,还能够提高代码编译的效率,使得用户能够及时使用用户界面上的功能模块,避免优先启动用户界面线程带来的应用程序功能受限。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了:

a1、一种应用程序的安装包启动方法,其特征在于,包括:

接收用户输入的启动指令;其中,所述启动指令为启动应用程序的安装包的指令,所述安装包中包括用户界面线程和代码编译线程;

根据所述启动指令,启动所述用户界面线程,并将所述代码编译线程从运行状态切换为暂停状态;

判断所述用户界面线程是否启动完成;

若所述用户界面线程启动完成,将所述代码编译线程从所述暂停状态切换为所述运行状态。

a2、如权利要求a1所述的安装包启动方法,其特征在于,所述将代码编译线程从运行状态切换为暂停状态,包括:

调用虚拟机的设定接口中的第一目标方法;

采用所述第一目标方法将所述代码编译线程从所述运行状态切换为所述暂停状态。

a3、如权利要求a2所述的安装包启动方法,其特征在于,所述采用所述第一目标方法将所述代码编译线程从所述运行状态切换为所述暂停状态,包括:

采用jit::scopedjitsuspend*sjs=newscopedjitsuspend()方法将所述代码编译线程从所述运行状态切换为所述暂停状态。

a4、如权利要求a3所述的安装包启动方法,其特征在于,所述将所述代码编译线程从所述暂停状态切换为所述运行状态,包括:

调用所述设定接口中的第二目标方法;

采用所述第二目标方法将所述代码编译线程从所述暂停状态切换为所述运行状态;

a5、如权利要求a4所述的安装包启动方法,其特征在于,所述采用所述第二目标方法将所述代码编译线程从所述暂停状态切换为所述运行状态,包括:

采用deletesjs方法将所述代码编译线程从所述暂停状态切换为所述运行状态。

a6、如权利要求a1所述的安装包启动方法,其特征在于,判断所述用户界面线程是否启动完成,包括:

判断中央处理器的占用率是否大于设定值;

所述占用率低于所述设定值,判定所述用户界面线程启动完成。

a7、如权利要求a1所述的安装包启动方法,其特征在于,所述将所述代码编译线程从所述暂停状态切换为所述运行状态,包括:

获取所述用户针对所述应用程序的历史操作记录;

根据所述历史操作记录,获取用户界面中的每个功能模块的优先级;其中,所述用户界面是在所述用户界面线程启动完成时生成的;

根据所述优先级对所述每个功能模块进行代码编译。

a8、如权利要求a7所述的安装包启动方法,其特征在于,所述根据所述历史操作记录,获取用户界面中的每个功能模块的优先级,包括:

根据用户对所述每个功能模块的使用频率,得到所述每个功能模块的优先级。

a9、如权利要求a7所述的安装包启动方法,其特征在于,所述根据所述优先级对所述每个功能模块进行代码编译,包括:

按照优先级由高到低的顺序对所述每个功能模块进行代码编译。

b10、一种应用程序的安装包启动装置,其特征在于,包括:

启动指令接收模块,用于接收用户输入的启动指令;其中,所述启动指令为启动应用程序的安装包的指令,所述安装包中包括用户界面线程和代码编译线程;

代码编译线程暂停模块,用于根据所述启动指令,启动所述用户界面线程,并将所述代码编译线程从运行状态切换为暂停状态;

代码编译线程恢复模块,用于判断所述用户界面线程是否启动完成;

若所述用户界面线程启动完成,将所述代码编译线程从所述暂停状态切换为所述运行状态。

b11、如权利要求b10所述的安装包启动装置,其特征在于,所述代码编译线程暂停模块,用于:

调用虚拟机的设定接口中的第一目标方法;

采用所述第一目标方法将所述代码编译线程从所述运行状态切换为所述暂停状态。

b12、如权利要求b11所述的安装包启动装置,其特征在于,所述代码编译线程暂停模块,用于:

采用jit::scopedjitsuspend*sjs=newscopedjitsuspend()方法将所述代码编译线程从所述运行状态切换为所述暂停状态。

b13、如权利要求b12所述的安装包启动装置,其特征在于,所述代码编译线程恢复模块,用于:

调用所述设定接口中的第二目标方法;

采用所述第二目标方法将所述代码编译线程从所述暂停状态切换为所述运行状态;

b14、如权利要求b13所述的安装包启动装置,其特征在于,所述代码编译线程恢复模块,用于:

采用deletesjs方法将所述代码编译线程从所述暂停状态切换为所述运行状态。

b15、如权利要求b10所述的安装包启动装置,其特征在于,所述代码编译线程恢复模块,用于:

判断中央处理器的占用率是否大于设定值;

所述占用率低于所述设定值,判定所述用户界面线程启动完成。

b16、如权利要求b10所述的安装包启动装置,其特征在于,所述代码编译线程恢复模块,用于:

获取所述用户针对所述应用程序的历史操作记录;

根据所述历史操作记录,获取用户界面中的每个功能模块的优先级;其中,所述用户界面是在所述用户界面线程启动完成时生成的;

根据所述优先级对所述每个功能模块进行代码编译。

b17、如权利要求b16所述的安装包启动装置,其特征在于,所述代码编译线程恢复模块,用于:

根据用户对所述每个功能模块的使用频率,得到所述每个功能模块的优先级。

b18、如权利要求b16所述的安装包启动装置,其特征在于,所述代码编译线程恢复模块,用于:

按照优先级由高到低的顺序对所述每个功能模块进行代码编译。

c19、一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现权利要求a1-a9任一权项所述的安装包启动方法的步骤。

d20、一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求a1-a9任一权项所述的安装包启动方法的步骤。

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