本申请涉及软件开发,具体而言,本申请涉及一种sdk加载方法、装置、设备及存储介质。
背景技术:
1、目前应用接入第三方sdk(software deve l opment ki t,软件开发工具包)的主要方式是应用直接硬编码静态加载第三方sdk。而静态加载第三方sdk是在应用发布时,将应用本身的逻辑和第三方sdk的代码、资源合并在一个安装包,并发布到应用市场。一旦发布,这个安装包将无法修改,安装包封装的第三方sdk也无法修改,如果第三方sdk出现问题时,或者,当第三方sdk升级导致线上出现大量的应用程序崩溃时,需要将应用原始工程与更新的第三方sdk重新融合形成新的安装包后再进行发布,或通过关闭sdk功能的方式暂缓问题。这两种方式中,功能软件开发与应用的耦合性较高,操作较为复杂,使得无法及时修复问题,修复周期较长。
技术实现思路
1、本申请的主要目的为提供一种sdk加载方法、装置、设备及存储介质,以在第三方sdk升级后出现问题时,能够及时修复,避免风险扩散。
2、为了实现上述发明目的,本申请提供一种sdk加载方法,包括:
3、当应用程序启动时,获取新版本的第一sdk;
4、利用所述第一sdk对所述应用程序进行初始化,并将所述第一sdk的第一对象发送给预先创建的动态库;其中,所述动态库中预先存储了旧版本的第二sdk;
5、获取服务器的配置指令,根据所述配置指令确定所述应用程序sdk的版本,得到目标版本;
6、当确定所述目标版本为旧版本时,从所述动态库中获取第二sdk的第二对象,利用所述第二对象加载所述应用程序。
7、进一步地,所述根据所述配置指令确定sdk的版本,得到目标版本之后,还包括:
8、当确定所述目标版本为新版本时,从所述动态库中获取第一sdk的第一对象,利用所述第一对象加载所述应用程序。
9、进一步地,所述利用所述第一对象加载所述应用程序之后,还包括:
10、当确定所述第一sdk为文字识别sdk时,根据所述第一对象调用文字识别服务。
11、进一步地,所述利用所述第一sdk对所述应用程序进行初始化之后,还包括:
12、向所述服务器上报所述第一sdk的功能扩展状态;
13、当所述第一sdk的功能扩展状态满足要求时,则确定所述目标版本为新版本,否则确定所述目标版本为旧版本。
14、进一步地,所述利用所述第一sdk对所述应用程序进行初始化之后,还包括:
15、对所述第一sdk进行安全性检测;
16、若所述第一sdk通过了所述安全性检测,则确定所述目标版本为新版本,否则确定所述目标版本为旧版本。
17、进一步地,所述应用程序启动之前,还包括:
18、从静态库中获取旧版本的sdk,得到第二sdk;
19、新建依赖所述静态库的动态库,将所述第二sdk存储于所述动态库。
20、进一步地,所述将所述第二sdk存储于所述动态库之后,还包括:
21、响应于版本更新指令,从服务器中获取新版本的第一sdk;
22、利用所述新版本的第一sdk替换静态库中存储的第二sdk。
23、本申请还提供一种sdk加载装置,所述装置包括:
24、获取模块,用于当应用程序启动时,获取新版本的第一sdk;
25、初始化模块,用于利用所述第一sdk对所述应用程序进行初始化,并将所述第一sdk的第一对象发送给预先创建的动态库;其中,所述动态库中预先存储了旧版本的第二sdk;
26、确定模块,用于获取服务器的配置指令,根据所述配置指令确定所述应用程序sdk的版本,得到目标版本;
27、加载模块,用于当确定所述目标版本为旧版本时,从所述动态库中获取第二sdk的第二对象,利用所述第二对象加载所述应用程序。
28、本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
29、本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述方法的步骤。
30、本申请所提供的一种sdk加载方法、装置、设备及存储介质,当应用程序启动时,获取新版本的第一sdk,利用所述第一sdk对所述应用程序进行初始化,并将所述第一sdk的第一对象发送给预先创建的动态库;其中,所述动态库中预先存储了旧版本的第二sdk,获取服务器的配置指令,根据所述配置指令确定所述应用程序sdk的版本,得到目标版本,当确定所述目标版本为旧版本时,从所述动态库中获取第二sdk的第二对象,利用所述第二对象加载所述应用程序,以利用动态库依赖静态库的链接原理,动态库获取静态库中旧版本的第二sdk,并将其包含在动态库的源码与资源文件中,当新版本的第一sdk更新跨度较大出现问题时,可以通过服务器配置的方式进行sdk版本降级,利用第二sdk的第二对象加载应用程序,以及时修复问题,降低sdk升级带来的风险。
1.一种sdk加载方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述配置指令确定sdk的版本,得到目标版本之后,还包括:
3.根据权利要求2所述的方法,其特征在于,所述利用所述第一对象加载所述应用程序之后,还包括:
4.根据权利要求2所述的方法,其特征在于,所述利用所述第一sdk对所述应用程序进行初始化之后,还包括:
5.根据权利要求2所述的方法,其特征在于,所述利用所述第一sdk对所述应用程序进行初始化之后,还包括:
6.根据权利要求1所述的方法,其特征在于,所述应用程序启动之前,还包括:
7.根据权利要求6所述的方法,其特征在于,所述将所述第二sdk存储于所述动态库之后,还包括:
8.一种sdk加载装置,其特征在于,包括:
9.一种计算机设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1-7任一项所述的sdk加载方法。