一种应用运行方法和装置制造方法及图纸

技术编号:19820828 阅读:17 留言:0更新日期:2018-12-19 14:21
本申请提供了一种应用运行方法和装置,其中,该应用的程序包包括:二进制代码和以插件形式存在的动态链接库文件,该方法包括:在分配给该应用的第一内存中运行该二进制代码;在运行该二进制代码的过程中,如果检测到该二进制代码中存在待调用的外部函数的函数标识,依据该函数标识从该动态链接库文件中调用该外部函数;在为该动态链接库文件分配的第二内存中运行该外部函数。该方法和装置可以符合移动终端侧操作系统对应用限制的情况下,使得应用具备提供更多业务的可能。

【技术实现步骤摘要】
一种应用运行方法和装置
本申请涉及计算机
,尤其涉及一种应用运行方法和装置。
技术介绍
随着网络技术的不断发展,能够运行于移动终端中的应用的种类也日益增多,而且应用所能提供的业务功能也逐渐增多。然而,受限于移动终端侧操作系统对于应用的限制,操作系统为每个应用分配的内存空间非常有限,从而限制了应用所能包含的代码量,进而使得应用提供的业务数量有限。
技术实现思路
有鉴于此,本申请提供了一种应用运行方法和装置,以在满足移动终端侧操作系统的限制的情况下,使得应用具备提供更多业务的可能。为实现上述目的,一方面,本申请提供了一种应用运行方法,所述应用的程序包包括:二进制代码和以插件形式存在的动态链接库文件,所述方法包括:在分配给所述应用的第一内存中运行所述二进制代码;在运行所述二进制代码的过程中,如果检测到所述二进制代码中存在待调用的外部函数的函数标识,依据所述函数标识从所述动态链接库文件中调用所述外部函数;在为所述动态链接库文件分配的第二内存中运行所述外部函数。优选的,在运行所述二进制代码之前,还包括:确定为所述应用分配的第一内存;在所述第一内存中加载所述二进制代码。优选的,所述如果检测到所述二进制代码中存在待调用的外部函数的函数标识,依据所述函数标识从所述动态链接库文件中调用所述外部函数,包括:如果检测到所述二进制代码中存在待调用的外部函数的函数地址,依据所述函数地址从所述动态链接库文件中调用所述外部函数。优选的,在所述依据所述函数标识从所述动态链接库文件中调用所述外部函数之前,还包括:确定分配给所述动态链接库文件的第二内存;在所述第二内存中加载所述动态链接库文件的文件头信息,所述文件头信息至少包括所述动态链接库文件中至少一个函数对应的函数地址。优选的,所述外部函数的函数标识包括:所述外部函数的函数名称;所述依据所述函数标识从所述动态链接库文件中调用所述外部函数,包括:依据所述外部函数的函数名称,从所述第二内存加载的所述文件头信息中查询所述外部函数对应的函数地址;依据所述外部函数对应的函数地址,从所述动态链接库文件的所述至少一个函数中,调用所述外部函数。优选的,所述应用的程序包还包括:应用的目录,所述应用的目录至少包括:所述二进制代码对应的主目录,且在所述主目录中包含所述动态链接库文件对应的子目录。另一方面,本申请还提供了一种应用运行装置,所述应用的程序包包括:二进制代码和以插件形式存在的动态链接库文件,所述装置包括:代码运行单元,用于在分配给所述应用的第一内存中运行所述二进制代码;动态加载单元,用于在运行所述二进制代码的过程中,如果检测到所述二进制代码中存在待调用的外部函数的函数标识,依据所述函数标识从所述动态链接库文件中调用所述外部函数;动态运行单元,用于在为所述动态链接库文件分配的第二内存中运行所述外部函数。优选的,所述装置还包括:第一内存确定单元,用于在所述代码运行单元运行所述二进制代码之前,确定为所述应用分配的第一内存;代码加载单元,用于在所述第一内存中加载所述二进制代码。优选的,所述装置还包括:第二内存确定单元,用于在所述动态加载单元依据所述函数标识从所述动态链接库文件中调用所述外部函数之前,确定分配给所述动态链接库文件的第二内存;文件头加载单元,用于在所述第二内存中加载所述动态链接库文件的文件头信息,所述文件头信息至少包括所述动态链接库文件中至少一个函数对应的函数地址。优选的,所述动态加载单元,包括:地址查询子单元,用于在运行所述二进制代码的过程中,如果检测到所述二进制代码中存在待调用的外部函数的函数名称,依据所述外部函数的函数名称,从所述第二内存加载的所述文件头信息中查询所述外部函数对应的函数地址;动态调用子单元,用于依据所述外部函数对应的函数地址,从所述动态链接库文件的所述至少一个函数中,调用所述外部函数。由以上可知,在本申请实施例中,应用的程序包由二进制代码和以插件形式存在动态链接库文件构成。由于移动终端的操作系统在为应用分配用于运行二进制代码的第一内存的同时,还会为插件分配第二内存,这样,在应用的二进制代码在第一内存运行过程中,如果检测到二进制代码中待调用的外部函数的函数标识,则会依据该函数标识从动态链接库文件中调用该外部函数,并在第二内存中运行该外部函数,从而使得动态链接库文件中函数的运行不占用第一内存的空间,这样,将应用所需提供的部分业务的代码数据存储于动态链接库文件中,以减少二进制代码的数量,便可以减少运行二进制代码所需占用的第一内存,从而在移动终端的操作系统为应用分配较少的第一内存的前提下,也可以使得应用具备提供较多业务的可能。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1示出了本申请一种应用运行方法一个实施例的流程示意图;图2示出了本申请一种应用运行方法又一个实施例的流程示意图;图3示出了本申请一种应用运行装置一个实施例的组成结构示意图;图4示出了本申请一种应用运行装置又一个实施例的组成结构示意图。具体实施方式本申请实施例的应用运行方法适用于移动终端,以在移动终端的操作系统对于应用存在限制的前提下,也可以使得提供多种业务的应用能够运行在移动终端中。如,参见图1,其示出了本申请一种应用运行方法一个实施例的流程示意图,本实施例的方法可以应用于移动终端。与常规的应用的程序包都是由二进制代码组成不同,在本申请中该应用的程序包除了包括二进制代码之外,还包括插件,该插件为该二进制代码关联的动态链接库文件。其中,动态链接库文件中可以包括该应用所能提供的至少一种业务对应的业务执行代码。如,根据实际需要将该应用所需涉及到的部分业务对应的程序仍以二进制代码的形式存在于程序包中,而基于该应用的其他部分业务对应的代码,构建出动态链接库文件,以便后续在应用运行中,动态加载该动态链接库文件中的代码。具体的,本实施例的方法可以包括:S101,在分配给该应用的第一内存中运行应用的二进制代码。可以理解的是,在移动终端中安装了应用之后,在移动终端的操作系统运行该应用之前,为会应用分配内存,以运行应用中的二进制代码,为了便于区分,本申请实施例中将为应用分配的内存称为第一内存。也就是说,该第一内存是移动终端等计算设备分配给应用,以加载并运行该应用的二进制代码的内存空间。相应的,在运行该应用之后,应用中的二进制代码会在分配的该第一内存中运行。可选的,在移动终端的操作系统运行该应用之前,移动终端的操作系统会加载应用的二进制代码。其中,加载该二进制代码包括:确定为该应用的第一内存,该第一内存为用于运行应用中二进制代码的内存空间;在该第一内存中加载该应用的程序包中的二进制代码。S102,在运行该二进制代码的过程中,如果检测到二进制代码中存在待调用的外部函数的函数标识,依据该函数标识从该动态链接库文件中调用该外部函数。其中,动态链接库文件中包含执行至少一种业务所需的函数以及相关数据,而为了应用可以执行动态链接库文件中函数,以实现向外提供动态链接库文件对应的业务,在该二进制代码的不同位置处会包含动态链接库文件中待执行本文档来自技高网...

【技术保护点】
1.一种应用运行方法,其特征在于,所述应用的程序包包括:二进制代码和以插件形式存在的动态链接库文件,所述方法包括:在分配给所述应用的第一内存中运行所述二进制代码;在运行所述二进制代码的过程中,如果检测到所述二进制代码中存在待调用的外部函数的函数标识,依据所述函数标识从所述动态链接库文件中调用所述外部函数;在为所述动态链接库文件分配的第二内存中运行所述外部函数。

【技术特征摘要】
1.一种应用运行方法,其特征在于,所述应用的程序包包括:二进制代码和以插件形式存在的动态链接库文件,所述方法包括:在分配给所述应用的第一内存中运行所述二进制代码;在运行所述二进制代码的过程中,如果检测到所述二进制代码中存在待调用的外部函数的函数标识,依据所述函数标识从所述动态链接库文件中调用所述外部函数;在为所述动态链接库文件分配的第二内存中运行所述外部函数。2.根据权利要求1所述的应用运行方法,其特征在于,在运行所述二进制代码之前,还包括:确定为所述应用分配的第一内存;在所述第一内存中加载所述二进制代码。3.根据权利要求1所述的应用运行方法,其特征在于,所述如果检测到所述二进制代码中存在待调用的外部函数的函数标识,依据所述函数标识从所述动态链接库文件中调用所述外部函数,包括:如果检测到所述二进制代码中存在待调用的外部函数的函数地址,依据所述函数地址从所述动态链接库文件中调用所述外部函数。4.根据权利要求1或2所述的应用运行方法,其特征在于,在所述依据所述函数标识从所述动态链接库文件中调用所述外部函数之前,还包括:确定分配给所述动态链接库文件的第二内存;在所述第二内存中加载所述动态链接库文件的文件头信息,所述文件头信息至少包括所述动态链接库文件中至少一个函数对应的函数地址。5.根据权利要求4所述的应用运行方法,其特征在于,所述外部函数的函数标识包括:所述外部函数的函数名称;所述依据所述函数标识从所述动态链接库文件中调用所述外部函数,包括:依据所述外部函数的函数名称,从所述第二内存加载的所述文件头信息中查询所述外部函数对应的函数地址;依据所述外部函数对应的函数地址,从所述动态链接库文件的所述至少一个函数中,调用所述外部函数。6.根据权利要求1所述的应用运行方法,其特征在于,...

【专利技术属性】
技术研发人员:王仕俊杨子斌
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京,11

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

1