SDK加载方法、装置、设备及存储介质制造方法及图纸

技术编号:37229852 阅读:13 留言:0更新日期:2023-04-20 23:12
本申请为软件开发技术领域,本申请提供了一种SDK加载方法、装置、设备及存储介质,其中,所述方法包括:当应用程序启动时,获取新版本的第一SDK,利用第一SDK对应用程序进行初始化,并将第一SDK的第一对象发送给预先创建的动态库,获取服务器的配置指令,根据配置指令确定应用程序SDK的版本,得到目标版本,当确定目标版本为旧版本时,从动态库中获取第二SDK的第二对象,利用第二对象加载应用程序,以在新版本的第一SDK更新跨度较大出现问题时,可以通过服务器配置的方式进行SDK版本降级,利用第二SDK的第二对象加载应用程序,实现及时修复问题,降低SDK升级带来的风险。降低SDK升级带来的风险。降低SDK升级带来的风险。

【技术实现步骤摘要】
SDK加载方法、装置、设备及存储介质


[0001]本申请涉及软件开发
,具体而言,本申请涉及一种SDK加载方法、装置、设备及存储介质。

技术介绍

[0002]目前应用接入第三方SDK(Software Deve l opment Ki t,软件开发工具包)的主要方式是应用直接硬编码静态加载第三方SDK。而静态加载第三方SDK是在应用发布时,将应用本身的逻辑和第三方SDK的代码、资源合并在一个安装包,并发布到应用市场。一旦发布,这个安装包将无法修改,安装包封装的第三方SDK也无法修改,如果第三方SDK出现问题时,或者,当第三方SDK升级导致线上出现大量的应用程序崩溃时,需要将应用原始工程与更新的第三方SDK重新融合形成新的安装包后再进行发布,或通过关闭SDK功能的方式暂缓问题。这两种方式中,功能软件开发与应用的耦合性较高,操作较为复杂,使得无法及时修复问题,修复周期较长。

技术实现思路

[0003]本申请的主要目的为提供一种SDK加载方法、装置、设备及存储介质,以在第三方SDK升级后出现问题时,能够及时修复,避免风险扩散。
[0004]为了实现上述专利技术目的,本申请提供一种SDK加载方法,包括:
[0005]当应用程序启动时,获取新版本的第一SDK;
[0006]利用所述第一SDK对所述应用程序进行初始化,并将所述第一SDK的第一对象发送给预先创建的动态库;其中,所述动态库中预先存储了旧版本的第二SDK;
[0007]获取服务器的配置指令,根据所述配置指令确定所述应用程序SDK的版本,得到目标版本;
[0008]当确定所述目标版本为旧版本时,从所述动态库中获取第二SDK的第二对象,利用所述第二对象加载所述应用程序。
[0009]进一步地,所述根据所述配置指令确定SDK的版本,得到目标版本之后,还包括:
[0010]当确定所述目标版本为新版本时,从所述动态库中获取第一SDK的第一对象,利用所述第一对象加载所述应用程序。
[0011]进一步地,所述利用所述第一对象加载所述应用程序之后,还包括:
[0012]当确定所述第一SDK为文字识别SDK时,根据所述第一对象调用文字识别服务。
[0013]进一步地,所述利用所述第一SDK对所述应用程序进行初始化之后,还包括:
[0014]向所述服务器上报所述第一SDK的功能扩展状态;
[0015]当所述第一SDK的功能扩展状态满足要求时,则确定所述目标版本为新版本,否则确定所述目标版本为旧版本。
[0016]进一步地,所述利用所述第一SDK对所述应用程序进行初始化之后,还包括:
[0017]对所述第一SDK进行安全性检测;
[0018]若所述第一SDK通过了所述安全性检测,则确定所述目标版本为新版本,否则确定所述目标版本为旧版本。
[0019]进一步地,所述应用程序启动之前,还包括:
[0020]从静态库中获取旧版本的SDK,得到第二SDK;
[0021]新建依赖所述静态库的动态库,将所述第二SDK存储于所述动态库。
[0022]进一步地,所述将所述第二SDK存储于所述动态库之后,还包括:
[0023]响应于版本更新指令,从服务器中获取新版本的第一SDK;
[0024]利用所述新版本的第一SDK替换静态库中存储的第二SDK。
[0025]本申请还提供一种SDK加载装置,所述装置包括:
[0026]获取模块,用于当应用程序启动时,获取新版本的第一SDK;
[0027]初始化模块,用于利用所述第一SDK对所述应用程序进行初始化,并将所述第一SDK的第一对象发送给预先创建的动态库;其中,所述动态库中预先存储了旧版本的第二SDK;
[0028]确定模块,用于获取服务器的配置指令,根据所述配置指令确定所述应用程序SDK的版本,得到目标版本;
[0029]加载模块,用于当确定所述目标版本为旧版本时,从所述动态库中获取第二SDK的第二对象,利用所述第二对象加载所述应用程序。
[0030]本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
[0031]本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述方法的步骤。
[0032]本申请所提供的一种SDK加载方法、装置、设备及存储介质,当应用程序启动时,获取新版本的第一SDK,利用所述第一SDK对所述应用程序进行初始化,并将所述第一SDK的第一对象发送给预先创建的动态库;其中,所述动态库中预先存储了旧版本的第二SDK,获取服务器的配置指令,根据所述配置指令确定所述应用程序SDK的版本,得到目标版本,当确定所述目标版本为旧版本时,从所述动态库中获取第二SDK的第二对象,利用所述第二对象加载所述应用程序,以利用动态库依赖静态库的链接原理,动态库获取静态库中旧版本的第二SDK,并将其包含在动态库的源码与资源文件中,当新版本的第一SDK更新跨度较大出现问题时,可以通过服务器配置的方式进行SDK版本降级,利用第二SDK的第二对象加载应用程序,以及时修复问题,降低SDK升级带来的风险。
附图说明
[0033]图1为本申请一实施例的SDK加载方法的流程示意图;
[0034]图2为本申请一实施例的SDK加载装置的结构示意框图;
[0035]图3为本申请一实施例的计算机设备的结构示意框图。
[0036]本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0037]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对
本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0038]本申请提出的一种SDK加载方法,执行主体为计算机设备,该SDK加载方法用于解决目前第三方SDK出现问题时,或者,当第三方SDK升级导致线上出现大量的应用程序崩溃时,需要将应用原始工程与更新的第三方SDK重新融合形成新的安装包后再进行发布,或通过关闭SDK功能的方式暂缓问题。这两种操作方式,功能软件开发与应用的耦合性较高,操作较为复杂,使得无法及时修复问题,修复周期较长的技术问题。
[0039]在本专利技术的实施例中,所述计算机设备可以是以I OS为开发平台的智能移动终端。SDK(Software Deve l opment Ki t,软件开发工具包)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。软件开发工具包广义上指辅助开发某一类软件的相关文档、范例和工具的集合。
[0040]SDK是指由非CP(content provi der,内容提供商,例如应用程序开发商)方提供的具有某种特定功能(比如登本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种SDK加载方法,其特征在于,包括:当应用程序启动时,获取新版本的第一SDK;利用所述第一SDK对所述应用程序进行初始化,并将所述第一SDK的第一对象发送给预先创建的动态库;其中,所述动态库中预先存储了旧版本的第二SDK;获取服务器的配置指令,根据所述配置指令确定所述应用程序SDK的版本,得到目标版本;当确定所述目标版本为旧版本时,从所述动态库中获取第二SDK的第二对象,利用所述第二对象加载所述应用程序。2.根据权利要求1所述的方法,其特征在于,所述根据所述配置指令确定SDK的版本,得到目标版本之后,还包括:当确定所述目标版本为新版本时,从所述动态库中获取第一SDK的第一对象,利用所述第一对象加载所述应用程序。3.根据权利要求2所述的方法,其特征在于,所述利用所述第一对象加载所述应用程序之后,还包括:当确定所述第一SDK为文字识别SDK时,根据所述第一对象调用文字识别服务。4.根据权利要求2所述的方法,其特征在于,所述利用所述第一SDK对所述应用程序进行初始化之后,还包括:向所述服务器上报所述第一SDK的功能扩展状态;当所述第一SDK的功能扩展状态满足要求时,则确定所述目标版本为新版本,否则确定所述目标版本为旧版本。5.根据权利要求2所述的方法,其特征在于,所述利用所述第一SDK对所述应用程序进行初始化之后,还包括:对所述第一SDK进行安全性检测;若所述第一SDK通过了所述安全性检测,则确定所述目标版本为新版本,否则确定所...

【专利技术属性】
技术研发人员:涂育旺
申请(专利权)人:深圳依时货拉拉科技有限公司
类型:发明
国别省市:

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

1