CN105094878B - 一种集成***库文件的方法和装置 - Google Patents
一种集成***库文件的方法和装置 Download PDFInfo
- Publication number
- CN105094878B CN105094878B CN201410219907.7A CN201410219907A CN105094878B CN 105094878 B CN105094878 B CN 105094878B CN 201410219907 A CN201410219907 A CN 201410219907A CN 105094878 B CN105094878 B CN 105094878B
- Authority
- CN
- China
- Prior art keywords
- library file
- system library
- class
- nsbundle
- application program
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000011068 loading method Methods 0.000 claims abstract description 63
- 238000013459 approach Methods 0.000 claims description 12
- 238000005259 measurement Methods 0.000 claims description 11
- 238000011423 initialization method Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 abstract description 3
- 238000011161 development Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种集成***库文件的方法和装置,属于计算机通信技术领域。所述方法包括:启动应用程序,加载所述应用程序本身需要的***库文件;并在构建具有构造函数属性的所述应用程序的类的阶段,获取所述应用程序使用的第三方软件开发工具包SDK中预设的***库文件加载方式;通过所述预设的***库文件加载方式,自动加载所述第三方SDK需要的***库文件。所述装置包括:第一加载模块、获取模块和第二加载模块。本发明不需要手动添加第三方SDK需要的***库文件,简化了集成***库文件的步骤,可以节约时间和成本。
Description
技术领域
本申请涉及计算机通信技术领域,具体涉及一种集成***库文件的方法和装置。
背景技术
随着计算机通信技术的发展,使用iOS(iphone operating system)***的移动终端受到了许多用户的喜欢,基于iOS开发的应用程序也越来越多。开发者在开发应用程序的过程中,为了提高开发效率,实现更多应用功能,增强用户体验,普遍要使用其他的第三方SDK(Software Development Kit,软件开发工具包)。例如,要实现将内容分享到微信、QQ空间等社交平台,需要使用微信、QQ空间等的SDK;要实现支付功能,需要使用支付的SDK;要实现广告功能,需要使用各个广告渠道的SDK等。开发者在使用第三方SDK时,需要添加第三方SDK需要的***库文件到自己的应用开发工程中,然后在应用开发工程对应的应用程序的Load Librarys(加载库)阶段,加载第三方SDK需要的***库文件和应用程序本身需要的***库文件,实现对第三方SDK需要的***库文件的集成。
现有集成***库文件的方法具体如下:开发者读取需要使用的第三方SDK的添加说明,得到第三方SDK需要的***库文件;开发者将第三方SDK需要的***库文件,一一添加在应用开发工程Xcode的库文件列表中;在应用开发工程对应的应用程序的Load Librarys(加载库)阶段,加载第三方SDK需要的***库文件和应用程序本身需要的***库文件,实现对第三方SDK需要的***库文件的集成。
现有集成***库文件的方法,开发者需要读取第三方SDK的添加说明,将第三方SDK需要的***库文件,手动添加在应用开发工程Xcode的库文件列表中,在Load Librarys阶段进行加载,实现集成,集成过程繁琐,浪费时间,成本高。
发明内容
本申请所要解决的技术问题在于提供一种集成***库文件的方法和装置,可以自动加载第三方SDK需要的***库文件,开发者在使用第三方SDK时,不需要知道第三方SDK内部调用了哪些***库文件,不需要手动添加第三方SDK需要的***库文件,简化了集成***库文件的步骤,可以节约时间和成本。
为了解决上述问题,本申请公开了一种集成***库文件的方法,包括:启动应用程序,加载所述应用程序本身需要的***库文件;并在构建具有构造函数属性的所述应用程序的类的阶段,获取所述应用程序使用的第三方软件开发工具包SDK中预设的***库文件加载方式;通过所述预设的***库文件加载方式,自动加载所述第三方SDK需要的***库文件。
进一步地,所述***库文件包括:框架文件和/或动态库文件。
进一步地,所述预设的***库文件加载方式,包括:根据所述第三方SDK需要的***库文件的路径生成基于NSBundle类的NSBundle对象;使用所述NSBundle类的加载方法加载所述NSBundle对象至所述应用程序。
进一步地,所述方法还包括:对于所述第三方SDK需要的***库文件中的类,使用动态方法初始化对象;对于初始化的对象,使用动态调用方法执行与初始化的对象相应的方法。
进一步地,所述对于所述第三方SDK需要的***库文件中的类,使用动态方法初始化对象,具体包括:调用NSClassFromString函数判断所述第三方SDK需要的***库文件中的类是否存在,如果存在则直接动态加载所述第三方SDK需要的***库文件中的类,从而初始化对象。
进一步地,所述对于初始化的对象,使用动态调用方法执行与初始化的对象相应的方法,具体为:通过@selector命令查找与所述初始化的对象相应的方法,使用performSelector函数动态调用所查找到的与初始化的对象相应的方法。
为了解决上述问题,本申请公开了一种集成***库文件的装置,所述装置包括:第一加载模块,用于启动应用程序,加载所述应用程序本身需要的***库文件;获取模块,用于在构建具有构造函数属性的所述应用程序的类的阶段,获取所述应用程序使用的第三方软件开发工具包SDK中预设的***库文件加载方式;第二加载模块,用于通过所述预设的***库文件加载方式,自动加载所述第三方SDK需要的***库文件。
进一步地,所述***库文件包括:框架文件和/或动态库文件。
进一步地,所述获取模块所获取的预设的***库文件加载方式,包括:根据所述第三方SDK需要的***库文件的路径生成基于NSBundle类的NSBundle对象;使用所述NSBundle类的加载方法加载所述NSBundle对象至所述应用程序。
进一步地,所述装置还包括:初始化模块,用于对于所述第三方SDK需要的***库文件中的类,使用动态方法初始化对象;调用模块,用于对于初始化的对象,使用动态调用方法执行与初始化的对象相应的方法。
进一步地,所述初始化模块对于所述第三方SDK需要的***库文件中的类,使用动态方法初始化对象具体为:调用NSClassFromString函数判断所述第三方SDK需要的***库文件中的类是否存在,如果存在则直接动态加载所述第三方SDK需要的***库文件中的类,从而初始化对象。
进一步地,所述调用模块对于初始化的对象,使用动态调用方法执行与初始化的对象相应的方法具体为:通过@selector命令查找与所述初始化的对象相应的方法,使用performSelector函数动态调用所查找到的与初始化的对象相应的方法。
为了解决上述问题,本申请还公开了一种第三方软件开发工具包SDK,所述第三方SDK包括:处理单元,用于存储预设的***库文件加载方式。
进一步地,所述处理单元存储的预设的***库文件加载方式,包括:根据所述第三方SDK需要的***库文件的路径生成基于NSBundle类的NSBundle对象;使用NSBundle类的加载方法加载所述NSBundle对象至所述应用程序。
与现有技术相比,本申请可以获得包括以下技术效果:
可以自动加载第三方SDK需要的***库文件,开发者在使用第三方SDK时,不需要知道第三方SDK内部调用了哪些***库文件,不需要手动添加第三方SDK需要的***库文件,简化了集成***库文件的步骤,可以节约时间和成本。通过动态方法来初始化对象、使用动态调用的方式来执行与初始化的对象相应的方法,就可以实现,不引用***库文件的头文件,又能使用***库文件下的类和调用相应的方法的目的。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例的一种集成***库文件的方法流程图;
图2是本申请实施例的一种集成***库文件的使用流程图;
图3是本申请实施例的第一种集成***库文件的装置结构示意图;
图4是本申请实施例的第二种集成***库文件的装置结构示意图;
图5是本申请实施例的一种第三方SDK的装置结构示意图。
具体实施方式
以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
实施例描述
下面以一实施例对本申请方法的实现作进一步说明。如图1所示,为本申请实施例的一种集成***库文件的方法流程图,该方法包括:
S101:获取应用程序的启动指令,启动应用程序。
具体地,开发者可以下载本实施例的第三方SDK,将第三方SDK添加到自己的应用开发工程中。其中,本实施例的第三方SDK中包括预设的***库文件加载方式。在获取到应用开发工程对应的应用程序的启动指令后,启动应用程序。
其中,预设的***库文件加载方式,包括:
根据第三方SDK需要的***库文件的路径生成基于NSBundle类的NSBundle对象;
使用NSBundle类的加载方法加载NSBundle对象至应用程序。
具体地,根据具体的第三方SDK,可以知道第三方SDK需要的***库文件为哪些,将第三方SDK需要的各个***库文件的路径生成基于NSBundle类的NSBundle对象,使用NSBundle类的加载方法加载NSBundle对象至开发者开发的应用开发工程对应的应用程序。
例如:第三方SDK为QQ互联的SDK,则第三方SDK需要的***库文件包括“Security.framework”、“libiconv.dylib”、“SystemConfiguration.framework”、“CoreGraphics.Framework”、“libsqlite3.dylib”、“CoreTelephony.framework”、“libstdc++.dylib”、“libz.dylib”这八个***库文件。则可以将这八个***库文件的路径分别生成基于NSBundle类的NSBundle对象。
S102:在应用程序的加载库(Load Librarys)阶段,加载应用程序本身需要的***库文件。
其中,***库文件包括:framework(框架)文件和/或dylib(动态库)文件。
S103:在调用具有构造函数属性的应用程序的类(__attribute__((contructor)))时,获取应用程序使用的第三方软件开发工具包SDK中预设的***库文件加载方式。
由于需要在运行第三方SDK的逻辑代码前载入第三方SDK需要的***库文件。所以将预设的***库文件加载方式放在__attribute__((contructor))方法内,而构造函数__attribute__((contructor))的执行是在main函数的执行之前,因此可以确保在所有方法执行前已经成功加载第三方SDK需要的***库文件。
S104:通过预设的***库文件加载方式,自动加载第三方SDK需要的***库文件。
因为第三方SDK需要的***库文件是通过在运行时动态加载的方式来实现,在静态编译阶段没有加入***库文件的,编译阶段也没有加入***库文件的头文件到应用开发工程,所以源代码不能引用***库文件的定义的头文件,如果直接声明使用该***库文件定义的类,源代码在预编译阶段编译器就会有报错,而不通过编译。所以解决方法是所有需要用引用的***库文件中的类,都使用动态方法来初始化对象,一般可以通过调用NSClassFromString函数判断第三方SDK需要的***库文件中的类是否存在,如果存在则直接动态加载第三方SDK需要的***库文件中的类,从而初始化对象。具体例如:
NSClassFromString(“ClassName”)。
初始化的对象,使用动态调用的方式来执行与初始化的对象相应的方法,一般可以通过@selector命令查找与初始化的对象相应的方法,使用performSelector函数动态调用所查找到的与初始化的对象相应的方法。具体例如:
[object performSelector:@selector(selectorName)]。
通过上述方法就可以实现,不引用***库文件的头文件,又能使用***库文件下的类和调用相应的方法的目的。
上述步骤S102~S104的动态加载及动态调用,均是在main函数执行之前完成。
本实施例所述的集成***库文件的方法,可以自动加载第三方SDK需要的***库文件,开发者在使用第三方SDK时,不需要知道第三方SDK内部调用了哪些***库文件,不需要手动添加第三方SDK需要的***库文件,简化了集成***库文件的步骤,可以节约时间和成本。通过动态方法来初始化对象、使用动态调用的方式来执行与初始化的对象相应的方法,就可以实现,不引用***库文件的头文件,又能使用***库文件下的类和调用相应的方法的目的。
如图2所示,是本申请实施例的一种集成***库文件的使用流程图。
S201:开发者通过预设的后台注册,下载第三方SDK。
其中,预设的后台可以是提供本实例的第三方SDK的用户提供的后台。通过在预设的后台注册,可以增加安全性。
其中,第三方SDK中包括预设的***库文件加载方式。第三方SDK可以是文件夹或压缩文件夹等形式。
S202:开发者将第三方SDK添加到自己的应用开发工程中。
将第三方SDK添加到自己的应用开发工程中,即在自己的工程源代码中添加相应的第三方SDK的代码。
S203:应用开发工程对应的应用程序启动之后,第三方SDK通过预设的***库文件加载方式动态加载第三方SDK需要的***库文件。
此步骤S203所执行的内容即包括上述步骤S101~S104的内容。
开发者不需要手动加载第三方SDK需要的***库文件,也不需要知道第三方SDK需要的***库文件是哪些,能大大简化开发者集成第三方SDK的步骤。
S204:应用开发工程对应的应用程序实现相应的功能逻辑。
如图3所示,是本申请实施例的一种集成***库文件的装置结构图,该装置包括:
第一加载模块301,用于启动应用程序,加载应用程序本身需要的***库文件;
获取模块302,用于在构建具有构造函数属性的应用程序的类的阶段,获取应用程序使用的第三方软件开发工具包SDK中预设的***库文件加载方式;
第二加载模块303,用于通过预设的***库文件加载方式,自动加载第三方SDK需要的***库文件。
其中,***库文件包括:framework文件和/或dylib文件。
其中,获取模块302所获取的预设的***库文件加载方式,包括:
根据第三方SDK需要的***库文件的路径生成基于NSBundle类的NSBundle对象;使用NSBundle类的加载方法加载NSBundle对象至应用程序。
进一步地,参见图4,该装置还包括:
初始化模块304,用于对于第三方SDK需要的***库文件中的类,使用动态方法初始化对象;
调用模块305,用于对于初始化的对象,使用动态调用方法执行与初始化的对象相应的方法。
进一步地,初始化模块304对于第三方SDK需要的***库文件中的类,使用动态方法初始化对象具体包括:调用NSClassFromString函数判断第三方SDK需要的***库文件中的类是否存在,如果存在则直接动态加载第三方SDK需要的***库文件中的类,从而初始化对象。实际操作中例如:NSClassFromString(“ClassName”)。
进一步地,调用模块305对于初始化的对象,使用动态调用方法执行与初始化的对象相应的方法具体包括:通过@selector命令查找与初始化的对象相应的方法,使用performSelector函数动态调用所查找到的与初始化的对象相应的方法。实际操作中例如:[object performSelector:@selector(selectorName)]。
本实施例所述的集成***库文件的装置,可以自动加载第三方SDK需要的***库文件,开发者在使用第三方SDK时,不需要知道第三方SDK内部调用了哪些***库文件,不需要手动添加第三方SDK需要的***库文件,简化了集成***库文件的步骤,可以节约时间和成本。通过动态方法来初始化对象、使用动态调用的方式来执行与初始化的对象相应的方法,就可以实现,不引用***库文件的头文件,又能使用***库文件下的类和调用相应的方法的目的。
如图5所示,是本申请实施例的一种第三方软件开发工具包SDK,该第三方SDK40包括:
处理单元401,用于存储预设的***库文件加载方式。
进一步地,处理单元401存储的预设的***库文件加载方式,包括:
将第三方SDK需要的***库文件的路径生成基于NSBundle类的NSBundle对象;
使用NSBundle类的加载方法加载NSBundle对象至应用程序。
本实施例所述的SDK,可以自动加载第三方SDK需要的***库文件,开发者在使用第三方SDK时,不需要知道第三方SDK内部调用了哪些***库文件,不需要手动添加第三方SDK需要的***库文件,简化了集成***库文件的步骤,可以节约时间和成本。
所述装置、第三方SDK与前述的方法流程描述对应,不足之处参考上述方法流程的叙述,不再一一赘述。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。
Claims (12)
1.一种集成***库文件的方法,其特征在于,所述方法包括:
启动应用程序,在所述应用程序的加载库阶段加载所述应用程序本身需要的***库文件;
并在调用具有构造函数属性的所述应用程序的类的阶段,从所述构造函数内获取所述应用程序使用的第三方软件开发工具包SDK中预设的***库文件加载方式,其中,所述预设的***库文件加载方式包括:用于加载NSBundle对象的NSBundle类加载方法,所述NSBundle对象是根据所述第三方SDK需要的***库文件的路径生成;
通过所述预设的***库文件加载方式,自动加载所述第三方SDK需要的***库文件。
2.如权利要求1所述的方法,其特征在于,所述***库文件包括:框架文件和/或动态库文件。
3.如权利要求1所述的方法,其特征在于,所述预设的***库文件加载方式,包括:
根据所述第三方SDK需要的***库文件的路径生成基于NSBundle类的NSBundle对象;
使用所述NSBundle类的加载方法加载所述NSBundle对象至所述应用程序。
4.如权利要求1-3任一权利要求所述的方法,其特征在于,所述方法还包括:
对于所述第三方SDK需要的***库文件中的类,使用动态方法初始化对象;
对于初始化的对象,使用动态调用方法执行与初始化的对象相应的方法。
5.如权利要求4所述的方法,其特征在于,所述对于所述第三方SDK需要的***库文件中的类,使用动态方法初始化对象,具体包括:
调用NSClassFromString函数判断所述第三方SDK需要的***库文件中的类是否存在,如果存在则直接动态加载所述第三方SDK需要的***库文件中的类,从而初始化对象。
6.如权利要求4所述的方法,其特征在于,所述对于初始化的对象,使用动态调用方法执行与初始化的对象相应的方法,具体为:
通过@selector命令查找与所述初始化的对象相应的方法,使用performSelector函数动态调用所查找到的与初始化的对象相应的方法。
7.一种集成***库文件的装置,其特征在于,所述装置包括:
第一加载模块,用于启动应用程序,在所述应用程序的加载库阶段加载所述应用程序本身需要的***库文件;
获取模块,用于在调用具有构造函数属性的所述应用程序的类的阶段,从所述构造函数内获取所述应用程序使用的第三方软件开发工具包SDK中预设的***库文件加载方式,其中,所述预设的***库文件加载方式包括:用于加载NSBundle对象的NSBundle类加载方法,所述NSBundle对象是根据所述第三方SDK需要的***库文件的路径生成;
第二加载模块,用于通过所述预设的***库文件加载方式,自动加载所述第三方SDK需要的***库文件。
8.如权利要求7所述的装置,其特征在于,所述***库文件包括:框架文件和/或动态库文件。
9.如权利要求7所述的装置,其特征在于,所述获取模块所获取的预设的***库文件加载方式,包括:
根据所述第三方SDK需要的***库文件的路径生成基于NSBundle类的NSBundle对象;
使用所述NSBundle类的加载方法加载所述NSBundle对象至所述应用程序。
10.如权利要求7-9任一权利要求所述的装置,其特征在于,所述装置还包括:
初始化模块,用于对于所述第三方SDK需要的***库文件中的类,使用动态方法初始化对象;
调用模块,用于对于初始化的对象,使用动态调用方法执行与初始化的对象相应的方法。
11.如权利要求10所述的装置,其特征在于,所述初始化模块对于所述第三方SDK需要的***库文件中的类,使用动态方法初始化对象具体为:
调用NSClassFromString函数判断所述第三方SDK需要的***库文件中的类是否存在,如果存在则直接动态加载所述第三方SDK需要的***库文件中的类,从而初始化对象。
12.如权利要求10所述的装置,其特征在于,所述调用模块对于初始化的对象,使用动态调用方法执行与初始化的对象相应的方法具体为:
通过@selector命令查找与所述初始化的对象相应的方法,使用performSelector函数动态调用所查找到的与初始化的对象相应的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410219907.7A CN105094878B (zh) | 2014-05-22 | 2014-05-22 | 一种集成***库文件的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410219907.7A CN105094878B (zh) | 2014-05-22 | 2014-05-22 | 一种集成***库文件的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105094878A CN105094878A (zh) | 2015-11-25 |
CN105094878B true CN105094878B (zh) | 2019-02-22 |
Family
ID=54575398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410219907.7A Active CN105094878B (zh) | 2014-05-22 | 2014-05-22 | 一种集成***库文件的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105094878B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106936686A (zh) * | 2015-12-31 | 2017-07-07 | 北京北信源软件股份有限公司 | 一种支持安全移动办公的即时通信平台 |
CN105824623B (zh) * | 2016-03-14 | 2019-03-26 | 广州趣丸网络科技有限公司 | 一种Android应用热修复的方法和装置 |
CN107193609B (zh) * | 2017-05-27 | 2021-05-07 | 北京奇虎科技有限公司 | 应用中功能模块调用方法及装置、电子设备 |
CN107729063A (zh) * | 2017-10-25 | 2018-02-23 | 武汉斗鱼网络科技有限公司 | 软件开发工具包的调用方法、装置及终端 |
CN109933350B (zh) * | 2019-03-07 | 2021-07-16 | 江苏通付盾信息安全技术有限公司 | 在应用中嵌入代码的方法、装置及电子设备 |
CN111309407B (zh) * | 2020-02-21 | 2023-07-11 | 咪咕文化科技有限公司 | 集成第三方库的处理方法及装置 |
CN114461226A (zh) * | 2022-04-07 | 2022-05-10 | 广州易方信息科技股份有限公司 | 解决强制依赖的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1834911A (zh) * | 2005-03-14 | 2006-09-20 | 华为技术有限公司 | 实现程序加载运行的方法 |
CN1924805A (zh) * | 2005-09-02 | 2007-03-07 | 腾讯科技(深圳)有限公司 | 在无线二进制运行环境平台实现动态链接库方法 |
CN101561763A (zh) * | 2009-04-30 | 2009-10-21 | 腾讯科技(北京)有限公司 | 一种实现动态链接库的方法和装置 |
CN101938469A (zh) * | 2010-08-08 | 2011-01-05 | 北京大学 | 一种运行时Android库文件的透明加载方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070261044A1 (en) * | 2006-05-04 | 2007-11-08 | Jonathan Clark | Chained Hook Function Serving Multiple Versions Of Identically Named Dynamically Loaded Libraries |
-
2014
- 2014-05-22 CN CN201410219907.7A patent/CN105094878B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1834911A (zh) * | 2005-03-14 | 2006-09-20 | 华为技术有限公司 | 实现程序加载运行的方法 |
CN1924805A (zh) * | 2005-09-02 | 2007-03-07 | 腾讯科技(深圳)有限公司 | 在无线二进制运行环境平台实现动态链接库方法 |
CN101561763A (zh) * | 2009-04-30 | 2009-10-21 | 腾讯科技(北京)有限公司 | 一种实现动态链接库的方法和装置 |
CN101938469A (zh) * | 2010-08-08 | 2011-01-05 | 北京大学 | 一种运行时Android库文件的透明加载方法及*** |
Non-Patent Citations (2)
Title |
---|
gcc下_attribute_((constructor))和_attribute_((destructor))的使用;linuw;《http://blog.csdn.net/linuw/article/details/6048307》;20101201;第1-2页 |
iOS程序插件及功能动态更新的2个思路-基于库的动态加载;dibowei;《http://www.cocoachina.com/bbs/read.php?tid-129814.html》;20121214;第1-5页 |
Also Published As
Publication number | Publication date |
---|---|
CN105094878A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094878B (zh) | 一种集成***库文件的方法和装置 | |
CN103177210B (zh) | 一种在Android中植入动态污点分析模块的方法 | |
US10083017B2 (en) | Processing source file | |
CN108964968B (zh) | 一种容器云环境下的服务接入管理方法和*** | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN112256321A (zh) | 静态库打包方法、装置、计算机设备和存储介质 | |
CN104731622B (zh) | 一种应用程序的加载方法、装置和移动终端 | |
WO2017219526A1 (zh) | 一种图形文件格式的使用方法及存储设备 | |
CN107832059A (zh) | 一种基于Makefile的代码静态分析方法和装置 | |
CN106339237A (zh) | 针对JavaEE领域WEB应用的插件加载框架及方法 | |
CN104615462A (zh) | 跨平台的移动应用生成服务端及*** | |
CN107977274B (zh) | Sdk调用的控制方法及装置 | |
CN107766307A (zh) | 一种表单元素联动的方法和设备 | |
CN113127000B (zh) | 应用程序组件的编译方法、装置、设备及存储介质 | |
KR102141749B1 (ko) | App 프로그램 실행 방법 및 장치 | |
CN117093286B (zh) | 插件生成方法、装置、设备及计算机可读存储介质 | |
KR101112697B1 (ko) | 에스케이브이엠 및 위피자바 응용프로그램을 안드로이드 응용프로그램으로 변환하는 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 | |
CN110941443B (zh) | 修改sdk中文件名的方法、装置及电子设备 | |
CN105933887B (zh) | 应用在不同双卡智能手机间的适配方法和装置 | |
WO2020135129A1 (zh) | 加载应用的插件的方法、装置和终端 | |
CN104133669B (zh) | 一种桌面应用的控制方法及终端设备 | |
CN113835748B (zh) | 基于html5的应用程序的打包方法、***和可读介质 | |
CN109684846A (zh) | 一种文件提取方法及装置 | |
Fu et al. | Research on audio/video codec based on Android | |
CN114201174A (zh) | 混合移动应用的构建方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211112 Address after: Room 516, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba Dharma Institute (Hangzhou) Technology Co., Ltd Address before: P.O. Box 847, 4th floor, Grand Cayman capital building, British Cayman Islands Patentee before: Alibaba Group Holdings Limited |
|
TR01 | Transfer of patent right |