CN111596970B - 动态库延迟加载方法、装置、设备和存储介质 - Google Patents
动态库延迟加载方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN111596970B CN111596970B CN202010396710.6A CN202010396710A CN111596970B CN 111596970 B CN111596970 B CN 111596970B CN 202010396710 A CN202010396710 A CN 202010396710A CN 111596970 B CN111596970 B CN 111596970B
- Authority
- CN
- China
- Prior art keywords
- dynamic library
- agent
- application program
- loading
- 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.)
- Active
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 99
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000003111 delayed effect Effects 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 51
- 238000011161 development Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012827 research and development Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本发明实施例涉及计算机应用技术领域,尤其涉及一种动态库延迟加载方法、装置、设备和存储介质。
背景技术
随着无线移动技术的发展,应用软件得到了广泛的使用,应用软件的功能也随之增多,然而开发规模也随着功能相应增大,iOS应用软件开发过程中使用动态库隔离不同模块,解决跨模块符号冲突的问题。动态库运行时执行链接操作,而iOS应用软件的动态库默认在应用软件启动时执行链接操作,严重影响应用软件的启动速度。
目前业界为了提高应用软件的启动速度,需要将动态库的链接操作延迟到应用软件启动后完成,因此需要将动态库从编译链接列表中移除,并通过反射方式调用动态库。但是应用软件中使用反射调用,严重增加了业务代码的规模,造成应用软件的版本更新困难,严重影响应用软件的开发过程,并且应用软件代码规模的增大,导致用户终端的存储空间被大量占用,应用软件启动时需要占据较多内存,严重影响用户终端的处理性能。
发明内容
本发明提供一种动态库延迟加载方法、装置、设备和存储介质,以实现动态库的延迟加载,提高应用软件启动速度,降低应用程序的代码规模,降低应用程序对终端设备的性能消耗,提高用户体验。
第一方面,本发明实施例提供了一种动态库延迟加载方法,该方法包括:
基于预设动态库代理进行编译处理并启动应用程序;
所述应用程序启动后通过所述预设动态库代理加载对应的动态库。
第二方面,本发明实施例提供了一种动态库延迟加载装置,该装置包括:
编译模块,用于基于预设动态库代理进行编译处理并启动应用程序;
调用模块,用于所述应用程序启动后通过所述预设动态库代理加载对应的动态库。
第三方面,本发明实施例提供了一种计算机设备,该计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的动态库延迟加载方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的动态库延迟加载方法。
本发明实施例,通过预设动态库代理进行编译处理,编译处理后启动应用程序,启动应用程序后通过预设动态库代理加载对应的动态库,实现动态库在应用程序启动后进行加载,通过动态库代理进行编译处理,无需对业务代码进行修改,提高研发效率,降低编译过程的时间延迟,提高应用程序的启动速度。
附图说明
图1是本发明实施例一提供的一种动态库延迟加载方法的流程图;
图2是本发明实施例二提供的一种动态库延迟加载方法的流程图;
图3是本发明实施例二提供的一种动态库延迟加载方法的示例图;
图4是本发明实施例三提供的一种动态库延迟加载装置的结构示意图;
图5是本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构,此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
目前iOS应用软件开发过程中,为了提高应用程序的启动速度,常将动态库进行延迟加载,相关技术中动态库延迟加载是基于反射调用实现,原本通过一行代码即可完成的动态库调用,在使用反射调用时至少需要3行代码,并且在代码规模较大的应用程序中无法通过反射调用实现动态库延迟加载。本发明实施例通过预设动态库代理实现动态库的延迟加载,解决了动态库延迟加载导致的代码模块增大的问题,提高了应用程序的启动速度,减少承载应用程序终端的负载,可提高用户体验。
实施例一
图1是本发明实施例一提供的一种动态库延迟加载方法的流程图,本实施例可适用于应用程序中动态库延迟加载的情况,该方法可以由动态库延迟加载装置来执行,该装置可以采用硬件和/或软件的方式来实现,参见图1,通常具体包括如下步骤:
步骤101、基于预设动态库代理进行编译处理并启动应用程序。
其中,预设动态库代理可以是代替动态库在编译过程中进行链接的代理函数或者代理类,预设动态库代理可以与动态库进行对应,每个预设动态库对应一个需要进行延迟加载的动态库。编译处理可以是将应用程序由编程语言转换为被终端设备识别理解的机器语言的过程,编译处理包括预处理、编译、汇编和链接等过程,其中,动态库的链接过程可以发生在应用程序启动后。应用程序通过链接获取到动态库中的函数或者类,应用程序一般在启动后根据需要进行加载动态库,不需要在编译处理过程中将动态库拷贝到应用程序,然而iOS应用程序中不支持动态库,所有库函数的链接需要在编译处理过程中添加到编译链接列表,通过预设动态库代理替代动态库进行链接完成编译处理过程,将动态库的加载过程延迟到应用程序启动后。
在本申请实施例中,通过预设动态库代理实现编译处理,预设动态库代理包括函数头,在编译处理时可以通过应用程序的语法和语义验证完成编译处理过程。确定应用程序完成编译处理后,启动应用程序,运行应用程序的二进制代码,渲染出应用程序的首页。
步骤102、所述应用程序启动后通过所述预设动态库代理加载对应的动态库。
其中,动态库具体是编译好的二进制代码,动态库在应用程序启动后进行动态加载,动态库中的符号在动态加载后被应用程序正常使用,由于编译过程中动态库不会被拷贝到应用程序中,因此,理论上动态库中存在一份,不同应用程序通过链接实现动态库的加载,不同应用程序可以使用相同的动态库。
具体的,应用程序启动后,在调用动态库的类或者函数时,将动态库加载到应用程序,不同的预设动态库代理对应不同的动态库,使用预设动态库代理将动态库加载到应用程序内存。加载动态库时主要对动态库的符号进行决议,使得承载应用程序的终端设备可以识别代码符号在动态库中的特定含义。由于不同库中符号存在冲突,相同的符号在不同的库中具有不同的含义,通过动态库加载到应用程序,可以使得应用程序中的符号含义与动态库相同,实现应用程序对动态库中类或者函数的调用。
本发明实施例,通过预设动态库进行编译处理并启动应用程序,该应用程序启动后通过预设动态库代理加载对应的动态库,实现应用程序中动态库的延迟加载,降低应用程序的编译时间,提高应用程序的启动速度,无需对业务代码进行修改,解决延迟加载动态库导致应用程序代码规模增加的问题,降低代码占用空间,减少承载应用程序终端设备的性能消耗,可提高应用程序开发效率。
进一步的,在上述发明实施例的基础上,还包括:
获取所述应用程序内的动态库,根据所述动态库创建预设动态库代理;其中,所述预设动态库代理至少包括代理类和调用类,所述代理类用于代理所述动态库进行编译处理,所述调用类用于加载所述动态库到应用程序。
其中,动态库可以是需要进行延迟加载的动态库,为了进一步平衡应用程序运行速度和启动速度,可以将应用程序内一部分动态库进行延迟加载,应用程序中其他动态库仍在编译处理时进行加载。预设动态库代理包括代理类和调用类,代理类可以是预设动态库代理中用于代理动态库进行编译处理过程的类,代理类中作为编译入口的函数头可以与动态库中作为编译入口的函数头相似或者相同。调用类用于在应用程序启动后将动态库中的类函数加载到应用程序,实现符号决议。代理类和动态库中的类函数相同,可以相同的字符开头表示代理类,代理类用于在编译过程中通过应用程序的编译验证。而调用类可以包括绑定方法,可以将预设代理动态库对应动态库中的类函数加载到应用程序内存,使得应用程序中的符号能够被终端设备正确识别。
本发明实施例中,通过选择应用程序的动态库创建预设动态库代理,可以选择应用程序所有的动态库进行创建预设动态库,也可以只选择进行延迟加载的预设动态库创建动态库。获取动态库中的类函数,根据类函数在预设动态库代理中创建相同的代理类,代理类与动态库中类函数的函数体相同,函数名存在差异。例如,代理类的函数名可以在对应的动态库类函数的函数名的基础上增加标识字符前缀,便于区分代理类。预设动态库代理中可以对应动态库中的类函数创建对应的调用类,各调用类中可以包括调用对应动态库内类函数的绑定方法。
实施例二
图2是本发明实施例二提供的一种动态库延迟加载方法的流程图,本发明实施例是以上述发明实施例为基础的具体化,使用模板批量创建动态库对应的预设动态库代理,并基于动态库代理的调用入口进行编译处理,参见图2,本发明实施例的动态库延迟加载方法包括如下步骤:
步骤201、获取包括延迟加载声明信息的动态库,并提取所述动态库的头文件内的属性信息。
其中,延迟加载声明信息用于表示动态库在应用程序启动后加载的信息,延迟加载声明信息具体是动态库的头文件信息,包括延迟加载动态库的库名信息和函数名信息等,应用程序通过延迟加载声明信息确定是否使用延迟加载的方式加载动态库。延迟加载声明信息存储于应用程序所在的工程文件中,可以通过字符匹配获取。头文件包括动态库的函数声明信息、宏定义信息和类名信息等,属性信息包括头文件内动态库函数定义的类名信息、父类型信息、方法信息和属性声明等信息,属性信息用于确定动态库函数的函数体结构。
具体的,可以在应用程序的工程文件的头文件中提取延迟加载声明信息,其中,延迟加载声明信息用于标记应用程序启动后加载的动态库。通过延迟加载声明信息获取到进行延迟加载的动态库,并在动态库的头文件中提取类名信息。示例性的,在包括延迟加载声明信息的动态库的头文件中进行扫描,可以通过字符串匹配的方式找出字符串@interface,读取该字符串后面的类名信息,以及,读取该类名信息与字符串@end之间的父类型信息、方法信息和属性声明信息等。进一步的,可以将类名信息存储到列表1,将父类型信息、方法信息和属性声明信息存储到列表2。
步骤202、将所述属性信息填充到代理类模板和调用类模板以生成对应所述动态库的预设动态库代理。
其中,代理类模板用于生成代理类,代理类模板包括用于进行编译处理的函数体,代理类模板中类名信息等关键信息以通用标识符或者空缺的方式表示。相应的,调用类模板包括调用类的函数体,用于加载动态库内的函数或方法,调用类模板中父类型信息和/或方法属性信息以通用标识符或者空缺的方式表示。例如,代理类模板中类名信息以_ClassName表示,调用类模板中父类型信息以_ParentClass表示,以及方法属性信息使用//method define表示。
具体的,可以将属性信息内的类名信息、父类型信息和方法属性信息等分别填充到代理类模板和调用类模板中,例如,可以使用类型信息替换代理类模板中的_ClassName,以及,使用父类信息替换调用类模板中的_ParentClass,以及通过方法属性信息替换调用模板中的//method define。可以理解的是,由于代理类模板和调用类模板编写方式的不同,可以将属性信息内不同的参数填充到代理类模块和调用类模块的不同位置。
步骤203、通过宏定义将所述动态库的调用入口替换为所述预设动态库代理的调用入口。
其中,宏定义表示将应用程序中一个字符串直接定义为另一个字符串的过程,例如,#define ABC_ClassName,可以是使用字符串_ClassName替换字符串ABC。调用入口可以是进行编译处理时获取到的代码字符串,可以具体是类函数的函数头信息,动态库的调用入口具体是动态库内类函数的函数头信息,预设动态库代理的调用入口具体是预设动态库代理内代理类的函数头信息。
在本发明实施例中,在进行编译处理时,可以使用宏定义的方式将动态库的调用入口替换为预设动态库代理的调用入口,可以将动态库的类函数的函数头信息替换为预设动态库代理内代理类的函数头信息,编译处理时代理类替换动态库内类函数进行编译,基于宏定义替换动态库的入口信息,无需对业务代码进行修改,实现对业务代码中动态库的延迟加载,提高了业务代码对应的应用程序的启动速度。
步骤204、根据所述预设动态库代理的调用入口完成编译处理,并启动应用程序。
具体的,可以通过预设动态库代理的调用入口获取到代理类的函数体,由代理类完成编译处理过程的验证,提高编译处理的速度。示例性的,图3是本发明实施例二提供的一种动态库延迟加载方法的示例图,参见图3,在业务代码进行编译处理,通过宏定义将动态库的调用入口替换为预设动态库代理的调用入口,可以在编译时将动态库的类调用入口通过宏定义替换成预设动态库代理类的调用入口。
步骤205、在所述应用程序启动后,监测所述应用程序的动态库加载信息。
其中,动态库加载信息可以是动态库的调用信息,具体包括函数声明信息和宏定义信息等。
在本发明实施例中,应用程序启动后为了实现业务功能,需要调用动态库函数,应用程序对工程文件中宏定义信息和/或函数声明信息等进行监测以获取到动态库加载信息,可以理解的是,动态库加载信息和动态库存在对应关系,当动态库加载信息中的函数声明信息和/或宏定义信息属于动态库内的函数或宏定义时,该动态加载信息与该动态库存在对应关系。
步骤206、根据所述动态库加载信息查找所述预设动态库代理内的调用类。
其中,调用类可以是加载动态库的类方法,调用类和动态库存在对应关系,不同的调用类对应不同的动态库。
具体的,存在对应关系的动态库加载信息和预设动态库代理内的调用类可以存在相同的标识信息,标识信息包括后缀名或者标识号。动态库加载信息和调用类存在对应关系是指对应相同动态库类函数,例如,动态库加载信息用于请求调用类函数a,调用类用于加载类函数a,动态加载信息与调用类存在对应关系。通过动态库加载信息在预设动态库代理中查找具有相同后缀名或者标识号的调用类。
步骤207、根据所述调用类加载所述动态库的字符定义。
其中,字符定义可以是字符在动态库中的含义,由于不同动态库内相同字符具有不同含义,应用程序在使用动态库中字符时需要确定该字符在所属动态库内的含义。
具体的,调用类将动态库的字符定义加载到应用程序内存,应用程序根据字符定义执行动态库中的函数,业务代码实现正常执行,通过调用类将各动态库的字符定义加载到程序内存,实现动态库之间的符号隔离,提高了字符利用率,有助于提高动态库开发过程中的团队协作效率。
本发明实施例,通过获取存在延迟加载声明信息的动态库,提取到动态库头文件中的属性信息,将属性信息分别填充到代理类模板和调用类模板生成预设动态库代理,通过宏定义将动态库的调用入口替换为预设动态库代理调用入口,由预设动态库代理完成编译处理并启动应用程序,监测应用程序的动态库加载信息,基于动态库加载信息查找对应的调用类,由调用类加载动态库的字符定义,实现动态库的延迟加载,通过预设动态库代理执行编译处理,减少应用启动时动态库的加载时间,使用宏定义替换动态库调用入口,无需修改业务代码,降低了应用程序的代码规模,减少承载应用程序的终端设备的负载,可提高应用程序的研发效率。
进一步的,在上述发明实施例的基础上,所述提取所述动态库的头文件的属性信息,包括:
查找所述头文件内至少一个目标关键字,根据所述目标关键字获取类名信息、父类型信息、方法信息和属性声明信息中至少一种作为属性信息。
其中,目标关键字可以是获取属性信息的字符串,由于头文件中属性信息周围存在@interface和@end等字符串,可以将属性信息周围常出现的字符串作为目标关键字。
具体的,可以通过字符匹配的方式在头文件内匹配目标关键字,并获取目标关键字周围的属性信息,属性信息包括类名信息、父类型信息和方法属性声明信息等。例如,扫描待处理动态库的头文件,对于每个头文件使用字符匹配的方式找出目标关键字@interface,读取该目标关键字后面的类名信息,将类名信息存储到列表1中以备后续生成代理类,然后截取类名信息和另一目标关键字@end之间的父类型信息、方法信息和属性声明信息等,并存储在列表2中。
实施例三
图4是本发明实施例三提供的一种动态库延迟加载装置的结构示意图,可执行本发明任意实施例所提供的动态库延迟加载方法,具体执行方法相应的功能模块和有益效果。该装置可以由软件和/或硬件实现,具体包括:编译模块301和调用模块302。
编译模块301,用于基于预设动态库代理进行编译处理并启动应用程序。
调用模块302,用于所述应用程序启动后通过所述预设动态库代理加载对应的动态库。
本发明实施例,通过编译模块基于预设动态库进行编译处理并启动应用程序,调用模块在应用程序启动后通过预设动态库代理加载对应的动态库,实现应用程序中动态库的延迟加载,降低应用程序的编译时间,提高应用程序的启动速度,解决延迟加载动态库导致应用程序代码规模增加的问题,降低代码占用空间,减少承载应用程序终端设备的性能消耗,无需对应用程序的业务代码进行修改,可提高应用程序的研发效率。
实施例四
图5是本发明实施例四提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括处理器40、存储器41、输入装置42和输出装置43;计算机设备中处理器40的数量可以是一个或多个,图5中以一个处理器40为例;计算机设备中的处理器40、存储器41、输入装置42和输出装置43可以通过总线或其他方式连接,图5中以通过总线连接为例。
实施例五
本发明实施例五还提供一种包含计算机可读存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种动态库延迟加载方法,该方法包括:
基于预设动态库代理进行编译处理并启动应用程序;
所述应用程序启动后通过所述预设动态库代理加载对应的动态库。
当然,本发明实施例所提供的一种包含计算机可读存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的动态库延迟加载方法中的相关操作。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (8)
1.一种动态库延迟加载方法,其特征在于,所述方法包括:
获取应用程序内的动态库,根据所述动态库创建预设动态库代理;其中,所述预设动态库代理至少包括代理类和调用类,所述代理类用于代理所述动态库进行编译处理,所述调用类用于加载所述动态库到应用程序;
所述根据所述动态库创建对应的预设动态库代理,包括:获取包括延迟加载声明信息的动态库,并提取所述动态库的头文件内的属性信息;将所述属性信息填充到代理类模板和调用类模板以生成对应所述动态库的预设动态库代理;
基于预设动态库代理进行编译处理并启动应用程序;
所述应用程序启动后通过所述预设动态库代理加载对应的动态库。
2.根据权利要求1所述的方法,其特征在于,所述基于预设动态库代理进行编译处理,包括:
通过宏定义将所述动态库的调用入口替换为所述预设动态库代理的调用入口;
根据所述预设动态库代理的调用入口完成编译处理,并启动所述应用程序。
3.根据权利要求2所述的方法,其特征在于,所述应用程序启动后通过所述预设动态库代理加载对应的动态库,包括:
在所述应用程序启动后,监测所述应用程序的动态库加载信息;
根据所述动态库加载信息查找所述预设动态库代理内的调用类;
根据所述调用类加载所述动态库的字符定义。
4.根据权利要求1-3任一所述的方法,其特征在于,所述预设动态库代理内各调用类注册于相同数组和/或具有相同关键字。
5.根据权利要求1所述的方法,其特征在于,所述提取所述动态库的头文件的属性信息,包括:
查找所述头文件内至少一个目标关键字,根据所述目标关键字获取类名信息、父类型信息、方法信息和属性声明信息中至少一种作为属性信息。
6.一种动态库延迟加载装置,其特征在于,所述装置包括:
代理模块,用于获取应用程序内的动态库,根据所述动态库创建预设动态库代理;其中,所述预设动态库代理至少包括代理类和调用类,所述代理类用于代理所述动态库进行编译处理,所述调用类用于加载所述动态库到应用程序;
所述根据所述动态库创建对应的预设动态库代理,包括:获取包括延迟加载声明信息的动态库,并提取所述动态库的头文件内的属性信息;将所述属性信息填充到代理类模板和调用类模板以生成对应所述动态库的预设动态库代理;
编译模块,用于基于预设动态库代理进行编译处理并启动应用程序;
调用模块,用于所述应用程序启动后通过所述预设动态库代理加载对应的动态库。
7.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的动态库延迟加载方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的动态库延迟加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010396710.6A CN111596970B (zh) | 2020-05-12 | 2020-05-12 | 动态库延迟加载方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010396710.6A CN111596970B (zh) | 2020-05-12 | 2020-05-12 | 动态库延迟加载方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111596970A CN111596970A (zh) | 2020-08-28 |
CN111596970B true CN111596970B (zh) | 2023-04-28 |
Family
ID=72182326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010396710.6A Active CN111596970B (zh) | 2020-05-12 | 2020-05-12 | 动态库延迟加载方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111596970B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114237609B (zh) * | 2021-11-08 | 2022-11-22 | 北京基调网络股份有限公司 | 一种动态适应及加载预编译的Nginx模块的方法及系统 |
CN114528037B (zh) * | 2021-12-31 | 2024-03-12 | 北京达佳互联信息技术有限公司 | 一种应用启动方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6442752B1 (en) * | 1999-08-26 | 2002-08-27 | Unisys Corporation | Method, apparatus, and computer program product for replacing a dynamic link library (dll) of a first computing environment with a dll of a second computing environment that can be invoked from the first computing environment in a transparent manner |
CN108121594A (zh) * | 2016-11-29 | 2018-06-05 | 阿里巴巴集团控股有限公司 | 一种进程管理方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11110194A (ja) * | 1997-10-06 | 1999-04-23 | Toshiba Corp | 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体 |
CN102402455A (zh) * | 2010-09-14 | 2012-04-04 | 北大方正集团有限公司 | 调用动态链接库的方法和装置 |
CN108133126B (zh) * | 2017-12-04 | 2021-04-06 | 北京奇虎科技有限公司 | 一种安卓应用的加固方法和装置 |
-
2020
- 2020-05-12 CN CN202010396710.6A patent/CN111596970B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6442752B1 (en) * | 1999-08-26 | 2002-08-27 | Unisys Corporation | Method, apparatus, and computer program product for replacing a dynamic link library (dll) of a first computing environment with a dll of a second computing environment that can be invoked from the first computing environment in a transparent manner |
CN108121594A (zh) * | 2016-11-29 | 2018-06-05 | 阿里巴巴集团控股有限公司 | 一种进程管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111596970A (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491199B (zh) | 一种自动生成接口的方法及终端 | |
CN106547527B (zh) | 一种JavaScript文件构建方法及装置 | |
CN109597618B (zh) | 程序开发方法、装置、计算机设备及存储介质 | |
CN101706725A (zh) | 一种可重定位程序的加载及调试方法及系统 | |
CN112540862A (zh) | 一种接口文档数据生成方法、装置、设备及存储介质 | |
CN111427583A (zh) | 组件的编译方法、装置和电子设备及计算机可读存储介质 | |
CN110716866B (zh) | 代码质量扫描方法、装置、计算机设备及存储介质 | |
US20100095283A1 (en) | Migration Apparatus Which Convert Application Program of Mainframe System into Application Program of Open System and Method for Thereof | |
CN111596970B (zh) | 动态库延迟加载方法、装置、设备和存储介质 | |
CN110109671B (zh) | 一种webpack标签尺寸样式转换方法及装置 | |
KR20150061203A (ko) | 네이티브 빌드 기반의 임베디드 소프트웨어 개발 환경을 지원하기 위한 임베디드 소프트웨어 개발 도구 제공 방법 및 장치 | |
CN111061486B (zh) | 一种安卓应用程序增量方法 | |
CN109558121A (zh) | 接口驱动程序的开发方法、装置、设备及存储介质 | |
CN112328241B (zh) | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 | |
CN115525534A (zh) | 基于swagger的接口测试的测试用例生成方法、生成平台 | |
CN110780863A (zh) | 一种存储系统的跨平台开发方法、装置、设备及介质 | |
CN111399842A (zh) | 一种代码编译方法及装置 | |
CN111158777A (zh) | 组件调用方法、装置及计算机可读存储介质 | |
CN111796832B (zh) | 热补丁文件生成方法、装置、设备及存储介质 | |
CN115809442A (zh) | 一种反逆向代码混淆方法、装置、设备及可读存储介质 | |
CN109857380B (zh) | 一种工作流文件编译方法及装置 | |
CN114706586A (zh) | 代码编译、代码运行方法、装置、计算机设备及存储介质 | |
CN113050948A (zh) | 动态库优化方法、装置、设备及存储介质 | |
CN112650502A (zh) | 批处理任务处理方法、装置、计算机设备和存储介质 | |
CN112579156A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231010 Address after: 31a, 15th floor, building 30, maple commercial city, bangrang Road, Brazil Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd. Address before: 5-13 / F, West Tower, building C, 274 Xingtai Road, Shiqiao street, Panyu District, Guangzhou, Guangdong 510000 Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd. |