一种SDK升级方法、装置以及计算机设备制造方法及图纸

技术编号:34109403 阅读:12 留言:0更新日期:2022-07-12 01:05
本公开提供了一种SDK升级方法、装置以及计算机设备,其中,该方法包括:确定目标软件工具开发包SDK中待升级功能所对应的待升级插件;并确定所述待升级插件所依赖的指定依赖库;基于所述指定依赖库对所述SDK所属的宿主工程进行编译,其中,编译后得到的宿主应用的依赖库中包含所述指定依赖库;对除所述指定依赖库以外的待升级插件进行编译,得到目标插件,其中,所述目标插件用于对所述SDK进行升级处理;所述目标插件在运行时能够调用所述宿主应用中的指定依赖库。本公开的技术方案在宿主编译过程中通过将插件中部分资源库编译至宿主中,能够缩小插件包,从而解决由于插件包较大导致的插件下载成功率低且插件代码改造量较大的技术问题。较大的技术问题。较大的技术问题。

【技术实现步骤摘要】
一种SDK升级方法、装置以及计算机设备


[0001]本公开涉及计算机的
,具体而言,涉及一种SDK升级方法、装置以及计算机设备。

技术介绍

[0002]软件开发工具包(Software Development Kit,简称SDK)一般都是软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。目前关于市面上的游戏SDK自升级方案,均是采用replugin等类似插件化的技术方案。在插件化技术方案中,SDK所属宿主基本是一个空壳,所有的功能全部放在插件中,但如果SDK的功能较为复杂,依赖的基础库较多,会造成自升级时要下发的插件很大,造成插件更新时的不便,且如果用户下载插件的话,会降低插件下载的成功率,从而导致在客户端进行SDK更新时操作不便。

技术实现思路

[0003]本公开实施例至少提供一种SDK升级方法、装置以及计算机设备。
[0004]第一方面,本公开实施例提供了一种SDK升级方法,应用于服务器,所述方法包括:确定目标软件工具开发包SDK中待升级功能所对应的待升级插件;并确定所述待升级插件所依赖的指定依赖库;基于所述指定依赖库对所述SDK所属的宿主工程进行编译,其中,编译后得到的宿主应用的依赖库中包含所述指定依赖库;对除所述指定依赖库以外的待升级插件进行编译,得到目标插件,其中,所述目标插件用于对所述SDK进行升级处理;所述目标插件在运行时能够调用所述宿主应用中的指定依赖库。
[0005]结合第一方面,本公开实施例提供了第一方面的第一种可能的实施方式,其中:对除所述指定依赖库以外的待升级插件进行编译,得到目标插件,包括:删除所述待升级插件所依赖的所述指定依赖库后,删除该待升级插件中与所述宿主工程相同的目标代码;在对删除所述目标代码之后的该待升级插件执行混淆编译任务,混淆编译后得到所述目标插件,其中,所述混淆编译任务中包含用于指示该待升级插件在宿主应用中所使用的代码的指示参数。
[0006]结合第一方面第一种可能的实施方式,本公开实施例提供了第一方面的第二种可能的实施方式,其中:删除该待升级插件中与所述宿主工程相同的目标代码包括:在除所述指定依赖库的待升级插件中确定目标SDK包,并删除所述目标SDK包,其中,所述目标SDK包中包含所述目标代码和所述目标代码所依赖的资源文件;所述方法还包括:为所述待升级插件增加目标外部依赖库;其中,所述目标外部依赖库中包含所述待升级插件中所使用的目标资源,所述目标资源为未包含在所述待升级插件中的资源。
[0007]结合第一方面第一种可能的实施方式,本公开实施例提供了第一方面的第三种可能的实施方式,其中:在对删除所述目标代码之后的该待升级插件执行混淆编译任务,混淆编译后得到所述目标插件,包括:拦截对所述待升级插件进行混淆编译处理的混淆编译任
务;将所述混淆编译任务中的插件混淆参数设置为目标数据,其中,所述目标数据用于表征所述宿主应用中该待升级插件所使用的代码的信息,和/或,用于表征所述宿主应用对该代码进行混淆处理的混淆规则;按照所述混淆编译任务中设置的插件混淆参数对所述待升级插件进行混淆编译处理,得到所述目标插件。
[0008]结合第一方面第三种可能的实施方式,本公开实施例提供了第一方面的第四种可能的实施方式,其中:所述方法还包括:在基于所述指定依赖库对所述SDK所属的宿主工程进行编译的过程中,对包含所述指定依赖库的所述宿主工程进行混淆处理,混淆得到目标表格,其中,所述目标表格中包含对所述指定依赖库进行混淆的混淆规则;将所述混淆编译任务中的插件混淆参数设置为目标数据,包括:将移动至所述宿主工程中的指定依赖库的信息,和/或,所述目标表格中的数据确定为所述目标数据。
[0009]结合第一方面第四种可能的实施方式,本公开实施例提供了第一方面的第五种可能的实施方式,其中:对除所述指定依赖库以外的待升级插件进行编译,得到目标插件,还包括:确定所述待升级插件中资源文件的资源标识信息;将所述资源标识信息按照预设规则进行修改,以使修改之后的所述待升级插件中资源文件的资源标识信息与所述宿主工程中资源文件的资源标识信息不相同。
[0010]结合第一方面,本公开实施例提供了第一方面的第六种可能的实施方式,其中:所述方法还包括通过以下方式确定所述指定依赖库:将外部第三方依赖库确定为所述指定依赖库;和/或,将内部依赖库中更新频率小于预定频率,以及体积大于预定体积的内部依赖库确定为所述指定依赖库。
[0011]第二方面,本公开实施例还提供一种SDK升级方法,应用于客户端,所述方法包括:在目标软件工具开发包SDK进行初始化时,检测是否存在待更新插件,其中,所述待更新插件为通过上述权利要求1至7中任一项所述方法确定的目标插件;在检测到所述待更新插件之后,加载所述待更新插件,并对加载之后的待更新插件进行安装,以完成对所述目标软件工具开发包SDK的升级处理。
[0012]结合第二方面,本公开实施例提供了第二方面的第一种可能的实施方式,其中:对加载之后的待更新插件进行安装,包括:将接入所述SDK的接入方的类加载器替换为预设类加载器,以及将所述SDK的接入方的应用上下文替换为预设应用上下文;其中,所述预设类加载器被配置成按照预设查找顺序在所述宿主应用和本地已加载插件中查找待加载类,所述预设应用上下文被配置成所述接入方能够同时查找所述宿主应用和已加载插件中的资源,所述本地已加载插件包括:加载之后的待更新插件和本地历史已加载插件。
[0013]第三方面,本公开实施例还提供一种SDK升级装置,设置于服务器,所述装置包括:确定单元,用于确定目标软件工具开发包SDK中待升级功能所对应的待升级插件;并确定所述待升级插件所依赖的指定依赖库;移动单元,用于基于所述指定依赖库对所述SDK所属的宿主工程进行编译,其中,编译后得到的宿主应用的依赖库中包含所述指定依赖库;编译单元,用于对除所述指定依赖库以外的待升级插件进行编译,得到目标插件,其中,所述目标插件用于对所述SDK进行升级处理;所述目标插件在运行时能够调用所述宿主应用中的指定依赖库。
[0014]第四方面,本公开实施例还提供一种SDK升级装置,设置于客户端,所述装置包括:检测单元,用于在目标软件工具开发包SDK进行初始化时,检测是否存在待更新插件,其中,
所述待更新插件为通过上述第一方面中任一项所述方法确定的目标插件;加载安装单元,用于在检测到所述待更新插件之后,加载所述待更新插件,并对加载之后的待更新插件进行安装,以完成对所述目标软件工具开发包SDK的升级处理。
[0015]第五方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
[0016]第六方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种SDK升级方法,其特征在于,所述方法包括:确定目标软件工具开发包SDK中待升级功能所对应的待升级插件;并确定所述待升级插件所依赖的指定依赖库;基于所述指定依赖库对所述SDK所属的宿主工程进行编译,其中,编译后得到的宿主应用的依赖库中包含所述指定依赖库;对除所述指定依赖库以外的待升级插件进行编译,得到目标插件,其中,所述目标插件用于对所述SDK进行升级处理;所述目标插件在运行时能够调用所述宿主应用中的指定依赖库。2.根据权利要求1所述的方法,其特征在于,对除所述指定依赖库以外的待升级插件进行编译,得到目标插件,包括:删除所述待升级插件所依赖的所述指定依赖库后,删除该待升级插件中与所述宿主工程相同的目标代码;在对删除所述目标代码之后的该待升级插件执行混淆编译任务,混淆编译后得到所述目标插件,其中,所述混淆编译任务中包含用于指示该待升级插件在宿主应用中所使用的代码的指示参数。3.根据权利要求2所述的方法,其特征在于,删除该待升级插件中与所述宿主工程相同的目标代码,包括:在除所述指定依赖库的待升级插件中确定目标SDK包,并删除所述目标SDK包,其中,所述目标SDK包中包含所述目标代码和所述目标代码所依赖的资源文件;所述方法还包括:为所述待升级插件增加目标外部依赖库;其中,所述目标外部依赖库中包含所述待升级插件中所使用的目标资源,所述目标资源为未包含在所述待升级插件中的资源。4.根据权利要求2所述的方法,其特征在于,在对删除所述目标代码之后的该待升级插件执行混淆编译任务,混淆编译后得到所述目标插件,包括:拦截对所述待升级插件进行混淆编译处理的混淆编译任务;将所述混淆编译任务中的插件混淆参数设置为目标数据,其中,所述目标数据用于表征所述宿主应用中该待升级插件所使用的代码的信息,和/或,用于表征所述宿主应用对该代码进行混淆处理的混淆规则;按照所述混淆编译任务中设置的插件混淆参数对所述待升级插件进行混淆编译处理,得到所述目标插件。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在基于所述指定依赖库对所述SDK所属的宿主工程进行编译的过程中,对包含所述指定依赖库的所述宿主工程进行混淆处理,混淆得到目标表格,其中,所述目标表格中包含对所述指定依赖库进行混淆的混淆规则;将所述混淆编译任务中的插件混淆参数设置为目标数据,包括:将移动至所述宿主工程中的指定依赖库的信息,和/或,所述目标表格中的数据确定为所述目标数据。6.根据权利要求1所述的方法,其特征在于,对除所述指定依赖库以外的待升级插件进行编译,得到目标插件,还包括:
确定所述待升级插件中资源文件的资源标识信息;将所述资源标识信息按照预设规则进行修改,以使修改之后的所述待升级插件中资源文件的资源标识信息与所述宿主工程中...

【专利技术属性】
技术研发人员:魏君成
申请(专利权)人:北京字跳网络技术有限公司
类型:发明
国别省市:

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

1