一种SDK打包方法、计算设备及SDK打包系统与流程

文档序号:13660812阅读:278来源:国知局
一种SDK打包方法、计算设备及SDK打包系统与流程

本发明涉及移动应用技术领域,特别涉及一种sdk打包方法、计算设备及sdk打包系统。



背景技术:

随着移动应用技术的快速发展,各个公司为了推广自己的产品及服务,会对本公司及第三方的开发者提供软件开发工具包(softwaredevelopmentkit,sdk)。sdk中集成有各种开发服务,可以为应用程序(application,app)开发者提供开发功能。一般当sdk开发完成后,会将打包好的sdk发布到开发者平台上,以供下载和后续集成。

目前,在进行sdk打包时,考虑到部分开发者并不需要sdk的全部功能,通常需要对特定的开发者单独拉分支,对sdk的功能进行裁剪,并在本地环境手动编译源码,生成库文件。然后,手动检查库文件的包名是否正确、是否有冗余类和方法、集成到应用中是否可以正常使用。待所有检查都通过后,才可确定交付上线。整个打包流程耗时又费力,而且每次发布都需要重复之前的工作,效率低下。因此,需要提供一种新的sdk打包方法来优化上述处理过程。



技术实现要素:

为此,本发明提供一种sdk打包方案,以力图解决或者至少缓解上面存在的问题。

根据本发明的一个方面,提供一种sdk打包方法,适于在计算设备中执行,该计算设备分别与数据库服务器与代码服务器通信连接,数据库服务器中存储有多条打包信息,每条打包信息包括sdk标识以及一个或多个sdk功能名称,代码服务器中存储有多个版本的sdk代码,每个版本的sdk代码对应于一个sdk标识并包括多个对应于相应sdk功能的功能代码,功能代码存储在一个或者多个代码文件中,该方法包括如下步骤:从数据库服务器中获取当前待处理的打包信息;从代码服务器中获取与该打包信息中的sdk标识相对应版本的sdk代码的全部代码文件;根据打包信息中的各sdk功能名称对所获取的代码文件进行处理,以删除该打包信息包括的sdk功能名称以外的sdk功能名称对应的功能代码;结合打包信息对处理后的代码文件进行编译以生成对应的sdk;生成与打包信息相关联的标签号;将sdk与标签号发送至代码服务器。

可选地,在根据本发明的sdk打包方法中,根据打包信息中的各sdk功能名称对所获取的代码文件进行处理,以删除该打包信息包括的sdk功能名称以外的sdk功能名称对应的功能代码的步骤包括:获取该打包信息中的sdk标识相对应版本的sdk代码包括的全部功能代码的sdk功能名称;从全部功能代码的sdk功能名称中选出打包信息中的各sdk功能名称以外的sdk功能名称;对每一个选出的sdk功能名称,将存储于所获取的代码文件中的该sdk功能名称对应的功能代码删除。

可选地,在根据本发明的sdk打包方法中,将存储于所获取的代码文件中的该sdk功能名称对应的功能代码删除的步骤包括:从所获取的代码文件中,查找存储有与该sdk功能名称对应的功能代码的一个或多个代码文件;对查找到的每一个代码文件,判断该代码文件中是否还包含该sdk功能名称对应的功能代码以外的其他功能代码;若该代码文件中还包含其他功能代码,则将该代码文件中存储的该sdk功能名称对应的功能代码的相应部分删除;若该代码文件中不包含其他功能代码,则删除该代码文件。

可选地,在根据本发明的sdk打包方法中,打包信息还包括一个或多个参数名称及其替换值,结合打包信息对处理后的代码文件进行编译以生成对应的sdk的步骤包括:将各参数名称对应的打包参数的当前值更新为相应的替换值;对存储有未删除的功能代码的代码文件进行编译,结合更新后的打包参数生成对应的sdk。

可选地,在根据本发明的sdk打包方法中,参数名称包括包名、前缀和/或url链接。

可选地,在根据本发明的sdk打包方法中,在将sdk与标签号发送至代码服务器的步骤之前,还包括:对sdk进行校验,若校验成功,则对sdk进行测试,并生成相应的测试报告。

根据本发明的又一个方面,提供一种计算设备,包括一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本发明的sdk打包方法的指令。

根据本发明的又一个方面,提供一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,指令当由计算设备执行时,使得计算设备执行根据本发明的sdk打包方法。

根据本发明的又一个方面,提供一种sdk打包方法,适于在sdk打包系统中执行,该系统包括用户端、数据库服务器、代码服务器和计算设备,计算设备分别与用户端、数据库服务器和代码服务器通信连接,代码服务器中存储有多个版本的sdk代码,每个版本的sdk代码对应于一个sdk标识并包括多个对应于相应sdk功能的功能代码,功能代码存储在一个或者多个代码文件中,用户端还与数据库服务器通信连接,该方法包括如下步骤:首先,用户端响应打包任务指令,以基于对应的sdk标识及选定的一个或多个sdk功能名称生成打包信息,将打包信息发送至数据库服务器以便存储,并向计算设备发送执行指令;计算设备响应接收到的执行指令,从数据库服务器中获取当前待处理的打包信息,从代码服务器中获取与该打包信息中的sdk标识相对应版本的sdk代码的全部代码文件;根据打包信息中的各sdk功能名称对所获取的代码文件进行处理,以删除该打包信息包括的sdk功能名称以外的sdk功能名称对应的功能代码;结合打包信息对处理后的代码文件进行编译以生成对应的sdk;生成与打包信息相关联的标签号,将sdk与标签号发送至代码服务器。

可选地,在根据本发明的sdk打包方法中,根据打包信息中的各sdk功能名称对所获取的代码文件进行处理,以删除该打包信息包括的sdk功能名称以外的sdk功能名称对应的功能代码的步骤包括:获取该打包信息中的sdk标识相对应版本的sdk代码包括的全部功能代码的sdk功能名称;从全部功能代码的sdk功能名称中选出打包信息中的各sdk功能名称以外的sdk功能名称;对每一个选出的sdk功能名称,将存储于所获取的代码文件中的该sdk功能名称对应的功能代码删除。

可选地,在根据本发明的sdk打包方法中,将存储于所获取的代码文件中的该sdk功能名称对应的功能代码删除的步骤包括:从所获取的代码文件中,查找存储有与该sdk功能名称对应的功能代码的一个或多个代码文件;对查找到的每一个代码文件,判断该代码文件中是否还包含该sdk功能名称对应的功能代码以外的其他功能代码;若该代码文件中还包含其他功能代码,则将该代码文件中存储的该sdk功能名称对应的功能代码的相应部分删除;若该代码文件中不包含其他功能代码,则删除该代码文件。

可选地,在根据本发明的sdk打包方法中,还包括:用户端响应打包任务指令,以基于对应的sdk标识、选定的一个或多个sdk功能名称、参数名称及其替换值生成打包信息。

可选地,在根据本发明的sdk打包方法中,结合打包信息对处理后的代码文件进行编译以生成对应的sdk的步骤包括:将各参数名称对应的打包参数的当前值更新为相应的替换值;对存储有未删除的功能代码的代码文件进行编译,结合更新后的打包参数生成对应的sdk。

可选地,在根据本发明的sdk打包方法中,参数名称包括包名、前缀和/或url链接。

可选地,在根据本发明的sdk打包方法中,在将sdk与标签号发送至代码服务器的步骤之前,还包括:对sdk进行校验,若校验成功,则对sdk进行测试,并生成相应的测试报告。

根据本发明的又一个方面,还提供一种sdk打包系统,该系统包括用户端、数据库服务器、代码服务器和计算设备,计算设备分别与用户端、数据库服务器和代码服务器通信连接,用户端还与数据库服务器通信连接。其中,用户端适于响应打包任务指令,以基于对应的sdk标识及选定的一个或多个sdk功能名称生成打包信息,将打包信息发送至数据库服务器以便存储,并向计算设备发送执行指令;数据库服务器适于存储用户端发送的打包信息,打包信息包括sdk标识以及一个或多个sdk功能名称;代码服务器适于存储与版本对应的sdk代码,每个版本的sdk代码对应于一个sdk标识并包括多个对应于相应sdk功能的功能代码,功能代码存储在一个或者多个代码文件中;计算设备适于响应接收到的执行指令,从数据库服务器中获取当前待处理的打包信息,从代码服务器中获取与该打包信息中的sdk标识相对应版本的sdk代码的全部代码文件,根据打包信息中的各sdk功能名称对所获取的代码文件进行处理,以删除该打包信息包括的sdk功能名称以外的sdk功能名称对应的功能代码,结合打包信息对处理后的代码文件进行编译以生成对应的sdk,生成与打包信息相关联的标签号,将sdk与标签号发送至代码服务器。

根据本发明的sdk打包的技术方案,首先从数据库服务器中获取当前待处理的打包信息,并从代码服务器中获取与该打包信息对应的全部代码文件,根据打包信息中的各sdk功能名称对所获取的代码文件进行处理,以删除该打包信息包括的sdk功能名称以外的sdk功能名称对应的功能代码,结合打包信息对处理后的代码文件进行编译以生成对应的sdk,生成与所述打包信息相关联的标签号,将sdk与标签号发送至代码服务器。在上述技术方案中,当删除功相应能代码时,会判断存储该功能代码的代码文件是否还包括其他功能代码,根据判断结果进行区分处理,提高了代码删除的准确性,便于通过删除处理对功能代码进行裁剪,进而编译生成sdk以供发布,保证交付质量的同时还尽量避免了人力资源的浪费。

进一步的,在sdk打包完成后,会对其进行校验和测试,确保sdk可用且可靠。此外,打包信息由用户端响应打包任务指令而生成、并发送至数据库服务器进行存储,用户端的界面中会显示待打包sdk的全部sdk功能,用户选定所需sdk功能并触发打包任务指令后,sdk打包系统即自动化生成sdk,提升了sdk打包效率,降低了时间和人力成本。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明的一个实施例的sdk打包系统100的示意图;

图2示出了根据本发明的一个实施例的计算设备200的结构框图;

图3示出了根据本发明一个实施例的sdk打包方法300的流程图;以及

图4示出了根据本发明又一个实施例的sdk打包方法400的流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的sdk打包系统100的示意图。应当指出,图1中的sdk打包系统100仅是示例性的,在具体的实践情况中,sdk打包系统100中可以有不同数量的用户端、计算设备、数据库服务器和代码服务器,本发明对sdk打包系统100中所包括的用户端、计算设备、数据库服务器和代码服务器的数量不做限制。如图1所示,计算设备200分别与用户端500、数据库服务器600和代码服务器700通信连接,用户端500还与数据库服务器700通信连接。

根据本发明的一个实施例,用户端500中可内置有用于触发sdk打包的应用,在该应用的当前界面中显示有一个sdk打包页面,该sdk打包页面与当前待打包sdk相关联,在该页面中提供有一个sdk功能列表和具有“开始打包”字样的按键图标,该列表包括当前待打包sdk的全部sdk功能的sdk功能名称,用户可通过勾选列表中显示的sdk功能名称以选定其所需的sdk功能,并点击“开始打包”的按键图标,来触发打包任务指令。在该实施方式中,该sdk打包页面所关联的待打包sdk的sdk标识为id1,sdk标识用于表明其关联的sdk的版本,该sdk功能列表中包括5个sdk功能,对应的sdk功能名称分别为a1、a2、a3、a4和a5,其中用户选定了名称为a3、a4和a5的sdk功能,在触发打包任务指令时将sdk标识id1与其进行了关联处理。

此时,用户端500适于响应打包任务指令,以基于对应的sdk标识及选定的一个或多个sdk功能名称生成打包信息,将打包信息发送至数据库服务器600以便存储,并向计算设备200发送执行指令。根据本发明的一个实施例,用户端500基于sdk标识id1及选定的sdk功能名称a3、a4和a5生成打包信息,将该打包信息即为b1,随后将打包信息b1发送至数据库服务器600进行存储,并向计算设备200发送执行指令。

数据库服务器600适于存储用户端500发送的打包信息,打包信息包括sdk标识以及一个或多个sdk功能名称。根据本发明的一个实施例,数据库服务器600将用户端500发送的打包信息b1进行存储,打包信息b1包括sdk标识id1以及sdk功能名称a3、a4和a5。当然,数据库服务器600中还存储有从其他用户端接收到的打包信息,这些打包信息一同存储与数据库服务器600中,以待计算设备200响应从相应的用户端接收到的执行指令,以从数据库服务器600中获取其当前待处理的打包信息。

计算设备200适于响应接收到的执行指令,从数据库服务器600中获取当前待处理的打包信息,从代码服务器700中获取与该打包信息中的sdk标识相对应版本的sdk代码的全部代码文件。根据本发明的一个实施例,计算设备200响应从用户端500接收到的执行指令,从数据库服务器600中获取当前待处理的打包信息b1,从代码服务器700中获取与该打包信息中的sdk标识id1对应版本的sdk代码的全部代码文件。

由于涉及到从代码服务器700中获取代码文件,此处先对其进行说明。代码服务器700适于存储与版本对应的sdk代码,每个版本的sdk代码对应于一个sdk标识并包括多个对应于相应sdk功能的功能代码,功能代码存储在一个或者多个代码文件中。表1示出了根据本发明的一个实施例的sdk代码的存储示例,具体如下所示:

表1

如表1所示,代码服务器700中存储有与sdk标识id1~id50分别关联的sdk代码,不同的sdk标识对应于sdk的不同版本。以sdk标识为id1的sdk代码为例,该sdk代码包括5个功能代码,分别为c1、c2、c3、c4和c5,依次对应于sdk功能名称为a1、a2、a3、a4和a5的sdk功能。其中,功能代码c1存储于代码文件d1中,功能代码c2存储于代码文件d2和d3中,功能代码c3存储于代码文件d3中,功能代码c4存储于功能代码文件d4中,功能代码c5存储于代码文件d3和d5中。需要说明的是,在实际处理中,代码服务器700是通过git仓库来对sdk代码进行存放的,计算设备200每次从代码服务器700中获取代码文件时,一般是通过clone命令来执行的,此处不予以赘述。

在该实施方式中,计算设备200从代码服务器700中获取与sdk标识id1对应版本的sdk代码的全部代码文件,即获得了代码文件d1、d2、d3、d4和d5。接下来,计算设备200根据打包信息中的各sdk功能名称对所获取的代码文件进行处理,以删除该打包信息包括的sdk功能名称以外的sdk功能名称对应的功能代码,结合打包信息对处理后的代码文件进行编译以生成对应的sdk,生成与打包信息相关联的标签号,将sdk与标签号发送至代码服务器700。关于以上计算设备200具体执行sdk打包处理的过程,将在后续进行详细说明,此处暂且不表。此外,值得注意的是,当sdk打包系统的运行负荷较低时,可考虑将计算设备200、用户端500和/或数据库服务器600中涉及sdk打包的处理模块集成到同一设备,以降低成本。

图2示出了根据本发明一个实施例的计算设备200的结构框图。在基本配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。

取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μp)、微控制器(μc)、数字信息处理器(dsp)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(alu)、浮点数单元(fpu)、数字信号处理核心(dsp核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。

取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如ram)、非易失性存储器(诸如rom、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据226。在一些实施方式中,程序222可以布置为在操作系统上由一个或多个处理器204利用程序数据224执行指令。

计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置102经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个a/v端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个i/o端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。

网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(rf)、微波、红外(ir)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。

计算设备200可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和web服务器等,也可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(pda)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备200还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,计算设备200实现为网络服务器,并被配置为执行根据本发明的sdk打包方法。其中,计算设备200的一个或多个程序222包括用于执行根据本发明的sdk打包方法的指令。

图3示出了根据本发明一个实施例的sdk打包方法300的流程图。如图3所示,方法300始于步骤s310,在步骤s310中,从数据库服务器600中获取当前待处理的打包信息,数据库服务器600中存储有多条打包信息,每条打包信息包括sdk标识以及一个或多个sdk功能名称。根据本发明的一个实施例,计算设备200从数据库服务器600中获取到的当前待处理的打包信息为b1,打包信息b1包括sdk标识id1以及sdk功能名称a3、a4和a5。

随后,进入步骤s320,从代码服务器700中获取与该打包信息中的sdk标识相对应版本的sdk代码的全部代码文件。根据本发明的一个实施例,参考表1,从代码服务器700中获取的、与sdk标识id1对应版本的sdk代码的全部代码文件为d1、d2、d3、d4和d5。其中,代码文件d1只存储有功能代码c1,代码文件d2只存储有功能代码c2,代码文件d3存储有功能代码c2、c3和c5,代码文件d4只存储有功能代码c4,代码文件d5只存储有功能代码c5,功能代码c1~c5依次对应于sdk功能名称为a1~a5的sdk功能。

在步骤s330中,根据打包信息中的各sdk功能名称对所获取的代码文件进行处理,以删除该打包信息包括的sdk功能名称以外的sdk功能名称对应的功能代码。根据本发明的一个实施例,可通过如下方式来执行上述功能代码的删除处理。首先,获取该打包信息中的sdk标识相对应版本的sdk代码包括的全部功能代码的sdk功能名称,然后,从全部功能代码的sdk功能名称中选出打包信息中的各sdk功能名称以外的sdk功能名称,再对每一个选出的sdk功能名称,将存储于所获取的代码文件中的该sdk功能名称对应的功能代码删除。在该实施方式中,sdk标识id1相对应版本的sdk代码包括的全部功能代码的sdk功能名称为a1、a2、a3、a4和a5,打包信息b1中的各sdk功能名称为a3、a4和a5,从sdk功能名称a1~a5中选出sdk功能名称a3~a5以外的sdk功能名称,可得选出的sdk功能名称为a1和a2。

此时,将存储于代码文件d1~d5中的sdk功能名称a1和a2对应的功能代码删除即可。具体的,对每一个选出的sdk功能名称,先从所获取的代码文件中,查找存储有与该sdk功能名称对应的功能代码的一个或多个代码文件,对查找到的每一个代码文件,判断该代码文件中是否还包含该sdk功能名称对应的功能代码以外的其他功能代码,若该代码文件中还包含其他功能代码,则将该代码文件中存储的该sdk功能名称对应的功能代码的相应部分删除,若该代码文件中不包含其他功能代码,则删除该代码文件。在该实施方式中,对sdk功能名称a1而言,从所获取的代码文件d1~d5中,查找到存储有与sdk功能名称a1对应的功能代码c1的代码文件为d1,而代码文件d1中不包含sdk功能名称a1对应的功能代码c1以外的其他功能代码,则直接删除代码文件d1。而对sdk功能名称a2而言,在代码文件d1~d5中查找相应的代码文件时,获取到存储有sdk功能名称a2对应的功能代码c2的代码文件为d2和d3,其中,代码文件d2中不包含sdk功能名称a2对应的功能代码c2以外的其他功能代码,但代码文件d3中还包含有功能代码c3和c5,因此,对代码文件d2是直接执行删除处理,而对代码文件d3,则是将该代码文件中存储的sdk功能名称c2对应的功能代码c2的相应部分删除。需要说明的是,当一个功能代码分别存储于多个代码文件时,其在各代码文件中所存储的相应部分的首部和尾部均添加有特殊注释,比如首部注释可以为//---------__sdk功能名称_start,尾部注释可以为//---------__sdk功能名称_end,在删除该相应部分时,只要查找到其对应的首部注释和尾部注释,将这两者之间的代码内容删除即可。对于首部注释和尾部注释的具体设置,如设定方式和位置,本发明并不进行限制,这些对于了解本发明方案的技术人员来说是可以容易想到的,并且也在本发明的保护范围之内,此处不予以赘述。

接下来,执行步骤s340,结合打包信息对处理后的代码文件进行编译以生成对应的sdk。根据本发明的一个实施例,打包信息还包括一个或多个参数名称及其替换值,参数名称包括包名、前缀和/或url链接,在生成sdk时,先将各参数名称对应的打包参数的当前值更新为相应的替换值,再对存储有未删除的功能代码的代码文件进行编译,结合更新后的打包参数生成对应的sdk。在该实施方式中,打包信息b1包括一个打包参数e1,打包参数e1的参数名称为url链接,当前值为http://www.test.com,替换值为https://www.test2.com,此时,将url链接对应的打包参数的当前值从“http://www.test.com”更新为“https://www.test2.com”,对存储有未删除的功能代码c3、c4和c5的代码文件d3、d4和d5进行编译,结合更新后的打包参数e1生成对应的sdk。

在生成对应的sdk后,进入步骤s350,生成与打包信息相关联的标签号。根据本发明的一个实施例,可基于用户端500所提供的用户名、sdk业务线、sdk版本号和编译版本号共同生成与打包信息b1相关联的标签号f1,标签号f1为test_user_appanaltics_v4.0.0.2234,其中,test_user为用户名,appanaltics为sdk业务线,v4.0.0为sdk版本号,而2234为编译版本号。

在执行完步骤s350后,应执行步骤s360,以将sdk与标签号发送至代码服务器700,但为保证步骤s340中生成的sdk的可用性和可靠性,根据本发明的又一个实施例,在执行步骤s360之前,先对该sdk进行校验,若校验成功,则对该sdk进行测试,并生成相应的测试报告。在该实施方式中,考虑到本技术领域中涉及sdk打包的相关方案,通常在编译生成sdk后,会对sdk和相应的示例代码进行压缩以生成对应的sdk压缩包来进行发布,以下将基于sdk压缩包来说明校验和测试sdk的过程。在对sdk压缩包进行校验的时,先对该sdk压缩包进行文件完整性校验,若文件完整性校验成功,则通过该sdk压缩包中的示例代码对该sdk进行编译校验。当校验成功后,才对该sdk压缩包进行测试,先对该sdk压缩包中的各sdk接口及内部模块进行单元测试,若所有sdk接口及内部模块的单元测试均成功,则通过编译该sdk压缩包中的示例代码来进行功能验证,并执行接口压力测试,若功能验证成功且接口压力测试通过,则根据测试结果生成相应的测试报告。

最后,在步骤s360中,将sdk与标签号发送至代码服务器700。根据本发明的一个实施例,将该sdk和标签号f1发送至代码服务器700,同时可生成与该sdk关联的下载链接,以便其他开发者或用户通过代码服务器700进行下载。代码服务器700在接收到计算设备200发送的该sdk和标签号f1后,以标签号f1在git仓库生成对应的标签,以备查询。此时,其他开发者或用户一方面可通过上述下载链接来直接获取该sdk,另一方面还可以通过该标签从git仓库中查询到该sdk以便下载。

图4示出了根据本发明又一个实施例的sdk打包方法400的流程图。如图4所示,方法400始于步骤s411,在步骤s411中,用户端500响应打包任务指令,以基于对应的sdk标识及选定的一个或多个sdk功能名称生成打包信息。根据本发明的一个实施例,用户端500基于sdk标识id1及选定的sdk功能名称a3、a4和a5生成打包信息,将该打包信息即为b1。

随后,执行步骤s412,用户端500将该打包信息发送至数据库服务器600以便存储,并执行步骤s413,向计算设备200发送执行指令。根据本发明的一个实施例,用户端500将打包信息b1发送至数据库服务器600进行存储,并向计算设备200发送执行指令。

数据库服务器600在接收到用户端500发送的打包信息后,执行步骤s421,存储该打包信息,打包信息包括sdk标识以及一个或多个sdk功能名称。根据本发明的一个实施例,数据库服务器600将用户端500发送的打包信息b1进行存储,打包信息b1包括sdk标识id1以及sdk功能名称a3、a4和a5。当然,数据库服务器600中还存储有从其他用户端接收到的打包信息,这些打包信息一同存储与数据库服务器600中,以待计算设备200响应从相应的用户端接收到的执行指令,以从数据库服务器600中获取其当前待处理的打包信息。

计算设备200响应从用户端500接收到的执行指令后,执行步骤s431,从数据库服务器600中获取当前待处理的打包信息,并执行步骤s432,从代码服务器700中获取与该打包信息中的sdk标识相对应版本的sdk代码的全部代码文件。

接下来,在步骤s433中,计算设备200根据该打包信息中的各sdk功能名称对所获取的代码文件进行处理,以删除该打包信息包括的sdk功能名称以外的sdk功能名称对应的功能代码。根据本发明的一个实施例,可通过如下方式来执行上述功能代码的删除处理。首先,计算设备200获取该打包信息中的sdk标识相对应版本的sdk代码包括的全部功能代码的sdk功能名称,然后,从全部功能代码的sdk功能名称中选出打包信息中的各sdk功能名称以外的sdk功能名称,再对每一个选出的sdk功能名称,将存储于所获取的代码文件中的该sdk功能名称对应的功能代码删除。具体的,对每一个选出的sdk功能名称,计算设备200先从所获取的代码文件中,查找存储有与该sdk功能名称对应的功能代码的一个或多个代码文件,对查找到的每一个代码文件,判断该代码文件中是否还包含该sdk功能名称对应的功能代码以外的其他功能代码,若该代码文件中还包含其他功能代码,则将该代码文件中存储的该sdk功能名称对应的功能代码的相应部分删除,若该代码文件中不包含其他功能代码,则删除该代码文件。

在步骤s434中,计算设备200结合该打包信息对处理后的代码文件进行编译以生成对应的sdk。根据本发明的一个实施例,打包信息还包括一个或多个参数名称及其替换值,参数名称包括包名、前缀和/或url链接,在生成sdk时,计算设备200先将各参数名称对应的打包参数的当前值更新为相应的替换值,再对存储有未删除的功能代码的代码文件进行编译,结合更新后的打包参数生成对应的sdk。

计算设备200在完成sdk的编译生成后,进入步骤s435,生成与打包信息相关联的标签号。在执行完步骤s435后,应执行步骤s436,以将sdk与标签号发送至代码服务器700,考虑到应确保步骤s434中所生成的sdk可用且可靠,根据本发明的又一个实施例,在执行步骤s436之前,计算设备200先对该sdk进行校验,若校验成功,则对该sdk进行测试,并生成相应的测试报告。

最后,在步骤s436中,计算设备200将sdk与标签号发送至代码服务器700。根据本发明的一个实施例,将该sdk和标签号发送至代码服务器700时,可生成与该sdk关联的下载链接,以便其他开发者或用户通过代码服务器700进行下载。代码服务器700在接收到计算设备200发送的该sdk和标签号后,以该标签号在git仓库生成对应的标签,以备查询。

关于方法400中计算设备200执行sdk打包处理的过程,在方法300中已进行详细描述,且方法400的步骤s431、s432、s433、s434、s435和s436分别于方法300的步骤s310、s320、s330、s340、s350和s360一一对应,是一致的,则此处不再予以赘述。

现有的sdk打包方法,通常需要对特定的开发者单独拉分支,对sdk的功能进行裁剪,在本地环境手动编译源码以生成库文件,并手动检查库文件的包名是否正确、是否有冗余类和方法、集成到应用中是否可以正常使用,整个打包流程耗时又费力,且每次发布都需要重复之前的工作,效率低下。根据本发明实施例的sdk打包方案,首先从数据库服务器中获取当前待处理的打包信息,并从代码服务器中获取与该打包信息对应的全部代码文件,根据打包信息中的各sdk功能名称对所获取的代码文件进行处理,以删除该打包信息包括的sdk功能名称以外的sdk功能名称对应的功能代码,结合打包信息对处理后的代码文件进行编译以生成对应的sdk,生成与所述打包信息相关联的标签号,将sdk与标签号发送至代码服务器。在上述技术方案中,当删除功相应能代码时,会判断存储该功能代码的代码文件是否还包括其他功能代码,根据判断结果进行区分处理,提高了代码删除的准确性,便于通过删除处理对功能代码进行裁剪,进而编译生成sdk以供发布,保证交付质量的同时还尽量避免了人力资源的浪费。进一步的,在sdk打包完成后,会对其进行校验和测试,确保sdk可用且可靠。此外,打包信息由用户端响应打包任务指令而生成、并发送至数据库服务器进行存储,用户端的界面中会显示待打包sdk的全部sdk功能,用户选定所需sdk功能并触发打包任务指令后,sdk打包系统即自动化生成sdk,提升了sdk打包效率,降低了时间和人力成本。

b10.如b9所述的方法,所述根据所述打包信息中的各sdk功能名称对所获取的代码文件进行处理,以删除该打包信息包括的sdk功能名称以外的sdk功能名称对应的功能代码的步骤包括:

获取该打包信息中的sdk标识相对应版本的sdk代码包括的全部功能代码的sdk功能名称;

从所述全部功能代码的sdk功能名称中选出所述打包信息中的各sdk功能名称以外的sdk功能名称;

对每一个选出的sdk功能名称,将存储于所获取的代码文件中的该sdk功能名称对应的功能代码删除。

b11.如b10所述的方法,所述将存储于所获取的代码文件中的该sdk功能名称对应的功能代码删除的步骤包括:

从所获取的代码文件中,查找存储有与该sdk功能名称对应的功能代码的一个或多个代码文件;

对查找到的每一个代码文件,判断该代码文件中是否还包含该sdk功能名称对应的功能代码以外的其他功能代码;

若该代码文件中还包含其他功能代码,则将该代码文件中存储的该sdk功能名称对应的功能代码的相应部分删除;

若该代码文件中不包含其他功能代码,则删除该代码文件。

b12.如b9-11中任一项所述的方法,还包括:

用户端响应打包任务指令,以基于对应的sdk标识、选定的一个或多个sdk功能名称、参数名称及其替换值生成打包信息。

b13.如b12所述的方法,所述结合所述打包信息对处理后的代码文件进行编译以生成对应的sdk的步骤包括:

将各参数名称对应的打包参数的当前值更新为相应的替换值;

对存储有未删除的功能代码的代码文件进行编译,结合更新后的打包参数生成对应的sdk。

b14.如b12或13所述的方法,所述参数名称包括包名、前缀和/或url链接。

b15.如b9-14中任一项所述的方法,在将所述sdk与所述标签号发送至所述代码服务器的步骤之前,还包括:

对所述sdk进行校验,若校验成功,则对所述sdk进行测试,并生成相应的测试报告。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组间可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组间组合成一个模块或单元或组间,以及此外可以把它们分成多个子模块或子单元或子组间。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、cd-rom、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。

在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的sdk打包方法。

以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1