一种第三方SDK加载方法及装置制造方法及图纸

技术编号:36606658 阅读:14 留言:0更新日期:2023-02-04 18:30
本发明专利技术公开了一种第三方SDK加载方法及装置,方法包括:在应用程序的编译工程中添加SDK主模块依赖和第三方SDK依赖;对编译工程进行编译,得到所述SDK主模块和所述第三方SDK的中间编译文件;扫描所述中间编译文件,标记所述第三方SDK模块和所述SDK主模块的目标类;基于标记的内容,对所述SDK主模块中管理类进行修改,完成所述第三方SDK模块在所述管理类中的注册。在本申请中,通过在编译应用程序时将第三方SDK注册到SDK主模块中,避免了应用启动时通过反射发现第三方SDK的过程,从而大幅提高了应用的启动速度,而且整个编译过程自动执行,无需人工参与,极大的提高了工程实践的效率。率。率。

【技术实现步骤摘要】
一种第三方SDK加载方法及装置


[0001]本申请涉及计算机软件开发
,特别涉及一种第三方SDK加载方法、装置、计算设备和可读存储介质。

技术介绍

[0002]在智能终端应用程序的开发过程中,其依赖的功能通常由第三方SDK(软件开发工具包)提供。应用启动时,需要在多个第三方SDK中选择当前包需要的第三方SDK进行加载,现有技术通常利用反射的方式来进行动态加载,但反射技术需要耗费较多的加载时间,导致应用加载较慢从而影响用户体验。因此,亟需一种方案来解决该问题。

技术实现思路

[0003]有鉴于此,本申请实施例提供了一种第三方SDK加载方法、装置、计算设备和可读存储介质,以解决现有技术中存在的技术缺陷。
[0004]本专利技术的第一方面提供了一种第三方SDK加载方法,包括:
[0005]在应用程序的编译工程中添加SDK主模块依赖和第三方SDK依赖;
[0006]对编译工程进行编译,得到所述SDK主模块和所述第三方SDK的中间编译文件;
[0007]扫描所述中间编译文件,标记所述第三方SDK模块和所述SDK主模块的目标类;
[0008]基于标记的内容,对所述SDK主模块中管理类进行修改,完成所述第三方SDK模块在所述管理类中的注册。
[0009]本专利技术的第二方面,提供了一种第三方SDK加载装置,包括:
[0010]加载模块,用于在应用程序的编译工程中添加SDK主模块依赖和第三方SDK依赖;
[0011]编译模块,用于对编译工程进行编译,得到所述SDK主模块和所述第三方SDK的中间编译文件;
[0012]扫描模块,用于扫描所述中间编译文件,标记所述第三方SDK模块和所述SDK主模块的目标类;
[0013]编辑模块,用于基于标记的内容,对所述SDK主模块中管理类进行修改,完成所述第三方SDK模块在所述管理类中的注册。
[0014]本专利技术的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现上述任意一项所述方法的步骤。
[0015]本专利技术的第四方面,提供了一种计算机可读存储介质,其中,该指令被处理器执行时实现上述任意一项所述方法的步骤。
[0016]在本申请的实施例中,为了避免在应用启动时从众多的第三方SDK中通过反射加载需要的目标,在编译应用程序时,直接将目标第三方SDK添加到编译工程中;在进行编译时,分别获取SDK主模块和第三方SDK的中间编译文件,进一步对上述中间编译文件进行扫描,得到SDK主模块的管理类和第三方SDK的代理类;然后对管理类所在的中间编译文件进
行修改,将第三方SDK的代理类注册到管理类中,避免了应用启动时通过反射发现第三方SDK的过程,从而大幅提高了应用的启动速度,而且整个编译过程自动执行,无需人工参与,极大的提高了工程实践的效率。
附图说明
[0017]图1是本申请实施例提供的计算设备的结构框图;
[0018]图2是本申请实施例提供的一种第三方SDK加载方法的流程示意图;
[0019]图3是本申请实施例提供的一种第三方SDK加载装置的结构示意图。
具体实施方式
[0020]为使本专利技术的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本专利技术进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。
[0021]在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
[0022]在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0023]应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“响应于确定”。
[0024]图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
[0025]计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi

MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
[0026]在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部
件。
[0027]计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
[0028]其中,处理器120可以执行图2所示的一种第三方SDK加载方法中的步骤。图2示出了根据本申请一实施例的第三方SDK加载方法的流程图,包括步骤202至步骤208。
[0029]现有技术中,SDK主模块聚合了多达数十个的第三方SDK,在应用启动时发现应用需要的第三方SDK并进行注册和加载。作为SDK主模块需要尽可能的减少运行耗时,保障应用程序的良好体验。但是,目前的SDK主模块在应用启动过程中,利用查找结合反射的方式来加载第三方SDK,导致应用的启动耗时严重,例如:
[0030][0031]通过上述代码,应用启动时SDK主模块遍历所有第三方SDK列表,发现所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种第三方SDK加载方法,其特征在于,包括:在应用程序的编译工程中添加SDK主模块依赖和第三方SDK依赖;对编译工程进行编译,得到所述SDK主模块和所述第三方SDK的中间编译文件;扫描所述中间编译文件,标记所述第三方SDK模块和所述SDK主模块的目标类;基于标记的内容,对所述SDK主模块中管理类进行修改,完成所述第三方SDK模块在所述管理类中的注册。2.根据权利要求1所述的方法,其中,所述中间编译文件包括字节码文件。3.根据权利要求1所述的方法,其中,所述扫描所述中间编译文件包括:基于筛选条件遍历中间编译文件,得到目标类;所述筛选条件包括关键字匹配。4.根据权利要求3所述的方法,其中,所述关键字匹配包括类名匹配和接口名匹配。5.根据权利要求1所述的方法,其中,标记所述第三方SDK模块和所述SDK主模块的目标类包括:对SDK主模块的中间编译文件进行扫描,得到所述SDK主模块中的管理类并标记;对第三方SDK的中间编译文件进行扫描,得到第三方SDK代理类并标记。6.根据权利要求1所述的方法,其中,对所述SDK主模块中...

【专利技术属性】
技术研发人员:高昭亚曾伟吴国倩陈凯旋肖春天王诗萌庞茜燕涛
申请(专利权)人:北京云游互动网络科技有限公司
类型:发明
国别省市:

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

1