应用启动方法及装置、计算机存储介质及设备制造方法及图纸

技术编号:20517658 阅读:21 留言:0更新日期:2019-03-06 02:34
一种应用启动方法及装置、计算机存储介质及设备,该方法包括:获取应用启动指令;查找应用启动指令所对应的虚拟机实例的地址;按虚拟机实例的地址,查找虚拟机实例中类验证模式字段的地址;将类验证模式字段的地址所指向的值,修改为用于在加载类时跳过类验证的值;调用类加载函数,通过类加载函数并根据类验证模式字段的地址所指向的值,加载应用启动指令所对应的类。基于本申请所提供的实施例的方案,可提高类加载速度,从而提高应用启动速度,可减少对业务逻辑使用的影响。

Application of startup method and device, computer storage medium and equipment

An application startup method and device, computer storage medium and equipment include: obtaining application startup instructions; locating the address of virtual machine instances corresponding to application startup instructions; locating the address of class validation mode fields in virtual machine instances according to the address of virtual machine instances; modifying the value of the address of class validation mode fields to be used for jumping when loading classes. Class validation value; call class loading function, load the class corresponding to the application startup instruction through class loading function and according to the value indicated by the address of the class validation mode field. The scheme based on the embodiments provided in this application can improve the class loading speed, thereby improving the application startup speed and reducing the impact on the use of business logic.

【技术实现步骤摘要】
应用启动方法及装置、计算机存储介质及设备
本专利技术涉及计算机信息处理
,特别涉及一种应用启动方法及装置、计算机存储介质及设备。
技术介绍
随着移动互联网的发展,Android(安卓)应用市场竞争愈发激烈。应用开发者不仅要不断开发新功能满足用户需求,还要不断提升应用的性能以便为用户提供更好的体验,其中,应用启动速度为应用的一个重要性能指标。对于大型Android应用,其业务逻辑多,启动时需要执行的逻辑多,加大了优化启动速度的难度。目前,应用开发者提出的优化应用启动的方案主要通过业务逻辑延迟加载,以减少启动过程中CPU(中央处理器)以及IO(输入输出)等系统资源竞争,加快启动相关逻辑的执行。然而,目前提升Android应用的启动速度的方案,需要将部分业务逻辑延迟启动来提高应用的启动速度,而延迟启动的部分业务逻辑实际上没有加速启动或者启动更慢,导致延迟启动的部分业务逻辑的使用受到影响。
技术实现思路
基于此,有必要针对目前应用启动加速影响导致业务逻辑使用受到影响的问题,提出一种应用启动方法及装置、计算机存储介质及设备。据此,本实施例采用以下技术方案:一种应用启动方法,应用于终端,包括以下步骤:获取应用启动指令;查找所述应用启动指令所对应的虚拟机实例的地址;按所述虚拟机实例的地址,查找所述虚拟机实例中类验证模式字段的地址;将所述类验证模式字段的地址所指向的值,修改为用于在加载类时跳过类验证的值;调用类加载函数,通过所述类加载函数并根据所述类验证模式字段的地址所指向的值,加载所述应用启动指令所对应的类。一种应用启动装置,应用于终端,包括:指令获取模块,用于获取应用启动指令;第一地址查找模块,用于查找所述应用启动指令所对应的虚拟机实例的地址;第二地址查找模块,用于按所述虚拟机实例的地址,查找所述虚拟机实例中类验证模式字段的地址;修改模块,用于将所述类验证模式字段的地址所指向的值,修改为用于在加载类时跳过类验证的值;加载模块,用于调用类加载函数,通过所述类加载函数并根据所述类验证模式字段的地址所指向的值,加载所述应用启动指令所对应的类。一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一项所述方法的步骤。一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时上述任意一项所述的方法。通过上述应用启动方法及装置、计算机存储介质以及设备,获取到应用启动指令,表示需要对应用进行启动,然后查找应用启动指令所对应的虚拟机实例的地址,根据虚拟机实例的地址,可查找到虚拟机实例中类验证模式字段的地址,将类验证模式字段的地址所指向的值修改为用于在加载类时跳过类验证的值,如此,在应用启动过程中,根据类加载函数以及类验证模式字段的地址所指向的值加载类时,无需对类进行验证,即跳过类验证过程,节省大量时间,提升类加载速度,从而提升应用整体的启动速度,可减少对业务逻辑使用的影响。附图说明图1为本专利技术一个实施例的工作环境示意图;图2为一个实施例中的终端的组成结构示意图;图3为一个实施例的应用启动方法的流程示意图;图4为另一个实施例的应用启动方法的子流程示意图;图5为另一个实施例的应用启动方法的子流程示意图;图6为现有首次加载Dex流程图;图7为现有应用启动过程中类加载的流程图;图8为一具体实施例的应用启动装方法的流程图;图9为一个实施例的应用启动装置的模块示意图;图10为另一个实施例的应用启动装置的子模块示意图;图11为另一个实施例的应用启动装置的子模块示意图。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本专利技术,并不限定本专利技术的保护范围。图1示出了本专利技术一个实施例中的工作环境示意图,如图1所示,其工作环境涉及终端10和服务器20,终端10和服务器20通过网络30连接,终端10及服务器20可以通过网络30进行通信。终端10在获取到应用启动指令后,响应于应用启动指令,可对虚拟机对象中的类验证模式字段的地址所指向的值进行修改,修改为用于在加载类时跳过类验证的值,根据类加载函数以及类验证模式字段的地址所指向的值加载应用启动指令所对应的类,实现对类的加载。如此,在进行类加载时,可跳过类验证,减少加载时间,提高类加载速度,从而加快启动应用速度。应用启动后可通过终端10与服务器20进行信息传递,即应用启动后,可在需要与服务器20交互时进行交互,例如,可通过终端10向服务器20发送数据请求,服务器20响应数据请求返回数据请求对应的数据至终端10,实现两者之间的数据通信。该终端10可以是任何一种能够实现智能输入输出以及启动应用的设备,例如,台式电脑或移动终端,移动终端可以是智能手机、平板电脑、车载电脑、穿戴式智能设备等。该服务器20可以是接收终端10发送的数据请求并返回数据的平台所在的服务器;服务器20可以为一个或多个。本实施例涉及的是终端10进行应用启动优化的方案。终端10在一个实施例中的内部结构图如图2所示。该终端10包括通过系统总线连接的处理器、存储介质、网络接口和内存。其中,终端10的存储介质存储有操作系统和计算机可读指令,该计算机刻度指令在被处理器执行时,可使得处理器实现一种应用启动方法。终端10的处理器用于提供计算和控制能力,支撑整个终端10的运行。终端10的内存中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种应用启动方法。终端10的网络接口用于与网络30连接和通信。请参阅图3,一个实施例中的应用启动方法,应用于终端,包括以下步骤S310至步骤S350:S310:获取应用启动指令。终端上可安装多种多样的应用,通过终端可启动应用实现对应用的智能操作。终端在获取到应用启动指令时,表示需要对应用启动指令对应的应用进行启动,后续会响应该应用启动指令执行相应的动作。在一个实施例中,终端可显示应用图标,检测到对应用图标的操作时获取到用于启动该应用图标所对应应用的应用启动指令。例如,终端上安装有A应用并在终端桌面上显示A应用图标,用户可对A应用图标进行点击操作,终端在检测到该点击操作响应该点击操作可获取到对A应用的应用启动指令。又例如,终端上安装有B应用,但终端上不显示B应用图标,可通过在终端上的应用程序管理中查找到B应用,然后进行开启操作,终端响应开启操作可获取到对B应用的应用启动指令。S320:查找应用启动指令所对应的虚拟机实例的地址。虚拟机在计算机科学中的体系结构里,是指一种特殊的程序,它可以在计算机平台和终端用户之间创建一种环境,而终端用户则是基于这个软件所创建的环境来操作软件。可以理解,虚拟机是指可以像真实机器一样运行程序的计算机程序。在启动应用过程中,接收到应用启动指令后,系统会启动一个应用进程,在该应用进程中启动应用对应的虚拟机实例,也就是会对虚拟机进行实例化,虚拟机实例即为对虚拟机实例化后得到具体对象,对象是具体的,占用存储空间,即在接收到应用启动指令后,会对虚拟机进行实例化得到虚拟机实例并进行存储,虚拟机实例有其对应的地址,查找应用启动指令所对应的虚拟机对象的地址即可。具体地,启动一个应用需要实例化本文档来自技高网...

【技术保护点】
1.一种应用启动方法,其特征在于,应用于终端,包括以下步骤:获取应用启动指令;查找所述应用启动指令所对应的虚拟机实例的地址;按所述虚拟机实例的地址,查找所述虚拟机实例中类验证模式字段的地址;将所述类验证模式字段的地址所指向的值,修改为用于在加载类时跳过类验证的值;调用类加载函数,通过所述类加载函数并根据所述类验证模式字段的地址所指向的值,加载所述应用启动指令所对应的类。

【技术特征摘要】
1.一种应用启动方法,其特征在于,应用于终端,包括以下步骤:获取应用启动指令;查找所述应用启动指令所对应的虚拟机实例的地址;按所述虚拟机实例的地址,查找所述虚拟机实例中类验证模式字段的地址;将所述类验证模式字段的地址所指向的值,修改为用于在加载类时跳过类验证的值;调用类加载函数,通过所述类加载函数并根据所述类验证模式字段的地址所指向的值,加载所述应用启动指令所对应的类。2.根据权利要求1所述的应用启动方法,其特征在于,所述按所述虚拟机实例的地址,查找所述虚拟机实例中类验证模式字段的地址的步骤包括:按所述虚拟机实例的地址,查找所述虚拟机实例中指向预设固定值的预设字段的地址;根据所述预设字段的地址,以及预设字段与类验证模式字段的相对位置关系,确定所述类验证模式字段的地址。3.根据权利要求2所述的应用启动方法,其特征在于,所述按所述虚拟机实例的地址,查找所述虚拟机实例中指向预设固定值的预设字段的地址的步骤包括:初始化临时指针,所述临时指针指向所述虚拟机实例的地址;将所述临时指针加1;读取所述临时指针指向的地址所指向的值;当所述临时指针指向的地址所指向的值与所述预设固定值不同时,返回所述将所述临时指针增加1的步骤;当所述临时指针指向的地址所指向的值与所述预设固定值相同时,将所述临时指针指向的地址作为所述预设字段的地址。4.根据权利要求3所述的应用启动方法,其特征在于,所述将所述临时指针加1的步骤之后还包括:记录所述临时指针增加的次数;当所述临时指针指向的地址所指向的值与所述预设固定值不相同,且所述增加的次数小于预设次数时,返回所述将所述临时指针增加1的步骤;当所述临时指针指向的地址所指向的值与所述预设固定值不相同,且所述增加的次数达到所述预设次数时,停止对所述预设字段的地址的查找。5.根据权利要求1所述的应用启动方法,其特征在于,所述将所述类验证模式字段的地址所指向的值,修改为用于在加载类时跳过类验证的值的步骤包括:当所述类验证模式字段的地址所指向的值为默认值时,将所述类验证模式字段的地址所指向的值修改为所述用于在加载类时跳过类验证的值;所述默认值在所述虚拟机实例启动时配置且用于触发类验证。6.根据权利要求1所述的应用启动方法,其特征在于,所述查找所述应用启动指令所对应的虚拟机实例的地址的步骤包括:调用文件打开函数打开虚拟机核心动态库,获得所述虚拟机核心动态库的句柄;调用地址获取函数并根据所述虚拟机核心动态库的句柄,在所述虚拟机核心动态库中,查找所述应用启动指令所对应的虚拟机实例的地址。7.根据权利要求1-6中任意一项所述的应用启动方法,其特征在于,所述查找所述应用启动指令所对应的虚拟机实例的地址的步骤之前,还包括步骤:响应所述应用启动指令,获取虚拟机版本号;当所述虚拟机版本号对应为Dalvik虚拟机时,进入所述查找所述应用启动指令所对应的虚拟机实例的地址的步骤。8.一种应用启动装置,其特征在于,应用于终端,包括:指令获取模块,用于获取应...

【专利技术属性】
技术研发人员:闫石石延龙
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1