CN115543419A - 一种软件开发工具包的生成方法、装置、设备及存储介质 - Google Patents
一种软件开发工具包的生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115543419A CN115543419A CN202211276982.8A CN202211276982A CN115543419A CN 115543419 A CN115543419 A CN 115543419A CN 202211276982 A CN202211276982 A CN 202211276982A CN 115543419 A CN115543419 A CN 115543419A
- Authority
- CN
- China
- Prior art keywords
- information
- software development
- package
- development kit
- generating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及数字医疗技术领域,提供一种软件开发工具包的生成方法、装置、设备及存储介质。该软件开发工具包的生成方法,包括:获取宿主项目的业务需求,解析获取所述业务需求的功能信息和架构信息;根据所述功能信息,调取预存在数据库中的资源文件和源代码进行模块化,获得对应的多个功能模块;根据所述架构信息,将多个所述功能模块进行组合打包,生成并输出软件开发工具包。本发明的软件开发工具包的生成方法,能够在面对不同客户的不同业务时,减少代码的分支,使所有的代码维护工作集中在同一个分支上,潜在地使所有用户的服务代码维持在最新的状态上,实现用一套代码为不同客户的不同项目提供差异化软件开发工具包的软件工程方案。
Description
技术领域
本发明涉及数字医疗技术领域,特别涉及一种软件开发工具包的生成方法、装置、设备及存储介质。
背景技术
SDK工具包(Software Development Kit,软件开发工具包)是指辅助开发某一特定的应用软件时提供的相关文档、范例和开发工具的集合,包括用于调试和其他用途的实用工具。它可以简单的为某个程序设计语言提供应用程序接口 API的一些文件,也可能包括能与某种嵌入式系统通讯的复杂的硬件,还可能包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。
实际业务中,因存在与不同的外部客户协作的实际业务需求,需要向客户提供对应的SDK工具包以承载业务服务。不同的客户合作的业务内容存在各种不同形式的差异,有的是较大的业务模块粒度上存在不同的组合,有的是同一个业务模块内存在不同的功能差异,因此需要提供多种不同形式和内容的SDK 给不同的客户。
通常情况下,开发人员在开发过程中会根据不同的客户,或者同一客户的不同项目创建不同的开发分支,各自在不同的分支上进行独立开发和维护。这种开发方式在初期存在一定的优势,但是随着客户的增多和业务的复杂程度增加,以及维护时间跨度的增加,多个开发分支的开发方式带来的维护成本越来越大。老旧的分支需要更多的维护成本,并隐藏了更高的业务风险,多个开发分支在同步最新的业务内容时需要更多的开发测试投入,迫切需要一种更加高效的开发方式来降低开发和维护成本,提升维护效率。
发明内容
本发明的目的在于提供一种软件开发工具包的生成方法、装置、设备及存储介质,以解决现有技术中SDK工具包生成方式在处理不同客户的多个业务时,难以处理运行环境和业务组合上的差异,无法高效输出对应的SDK工具包的技术问题。
第一方面,提供了一种软件开发工具包的生成方法,包括:
获取宿主项目的业务需求,解析获取所述业务需求的功能信息和架构信息;
根据所述功能信息,调取预存在数据库中的资源文件和源代码进行模块化,获得对应的多个功能模块;
根据所述架构信息,将多个所述功能模块进行组合打包,生成并输出软件开发工具包。
第二方面,提供了一种软件开发工具包的生成装置,包括:
业务需求获取单元,用于获取宿主项目的业务需求,解析所述业务需求获取所要输出软件开发工具包的功能信息和架构信息;
功能模块生成单元,用于根据所述功能信息,调取资源文件和源代码进行模块化,获得对应的多个功能模块;
工具包输出单元,用于根据所述架构信息,将多个所述功能模块进行组合打包,生成并输出软件开发工具包。
第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述软件开发工具包的生成方法的步骤。
第四方面,提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述软件开发工具包的生成方法的步骤。
上述软件开发工具包的生成方法、装置、设备及存储介质,能够在面对不同客户的不同业务,调用预存在数据库中的资源文件和源代码,生成与宿主项目的业务需求相匹配的SDK工具包,从而结合业务组件化和可配置化的技术,实现用一套代码为不同客户的不同项目提供差异化SDK工具包的软件工程方案。本发明的软件开发工具包的生成方法、装置、设备及存储介质,在面对不同宿主项目时可以很好地减少代码的分支,使所有的代码维护工作集中在同一个分支上,潜在地使所有用户的服务代码维持在最新的状态上,从而有效地提升代码维护的效率,减少开发和测试的消耗,降低维护的风险,尤其对于一些同时提供多种服务的复杂场景,例如公司ToB业务的开展,有着积极的意义。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1显示为本发明一实施例中软件开发工具包的生成方法的一应用环境示意图;
图2显示为本发明一实施例中软件开发工具包的生成方法的流程示意图;
图3显示为本发明一实施例中软件开发工具包的生成方法中步骤S1的流程示意图;
图4显示为本发明一实施例中软件开发工具包的生成方法中步骤S2的流程示意图;
图5显示为本发明一实施例中软件开发工具包的生成方法中步骤S23的流程示意图;
图6显示为本发明一实施例中软件开发工具包的生成方法中步骤S3的流程示意图;
图7显示为本发明一实施例中软件开发工具包的生成方法中步骤S33的流程示意图;
图8显示为本发明另一实施例中软件开发工具包的生成方法中步骤S33'的流程示意图;
图9显示为本发明一实施例中软件开发工具包的生成方法中步骤S332和步骤S332'的流程示意图;
图10显示为本发明一实施例中统一对账装置的结构框图;
图11显示为本发明一实施例中计算机设备的一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-11。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参见图1,本发明的目的在于提供一种软件开发工具包的生成方法、装置、设备及存储介质,以解决现有技术中SDK工具包生成方式在处理不同客户的多个业务时,难以处理运行环境和业务组合上的差异,无法高效输出对应的 SDK工具包的技术问题。
请参见图1,本发明实施例提供一种软件开发工具包的生成方法和装置,该方案中,应用于打包服务端,所述打包服务端通过网络与宿主项目所在的终端进行通信,根据宿主项目的业务需求生成对应的软件开发工具包(即SDK工具包),并通过至少一个回调接口响应终端的命令运行对应业务需求的SDK工具包,执行宿主项目需求的工作。这种方式实质上将打包服务端与承载宿主项目的终端组件化,并对打包服务端与承载宿主项目之间的接口作了标准化。这样能使得打包服务端抹平不同客户环境的差异,尽力对齐所有客户的SDK工具包需求。
具体地,所述打包服务端可通过与终端的通信接收宿主项目的业务需求,进一步解析宿主项目的业务需求获取宿主项目所需求SDK工具包的架构信息和功能信息,从而基于功能信息从数据库中检索业务相关度高的资源文件以进行模块化,并基于架构信息将获得的多个功能模块打包生成SDK工具包,以供宿主项目调用。所述宿主项目在需要调用SDK工具包时,则通过所在终端向打包服务端发送调用命令,打包服务端响应调用命令通过回调接口将SDK工作包输出给对应终端上的宿主项目,宿主项目运行获取的SDK工具包执行需求的工作。其中,所述终端可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。所述打包服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在本发明一示例中,本发明软件开发工具包的生成方法可应用在数字医疗与,例如,本发明的软件开发工具包的生成方法可应用在医疗系统的打包服务端,利用预存在医疗系统数据库中的源代码文件和数据文件,对接不同类型终端上的不同医疗项目软件(如挂号平台软件、线上医疗问诊软件以及慢病综合软件等),其中,本软件开发工具包的生成方法在医疗系统的打包服务端与载有医疗项目软件的终端通信连接,通过同一分支为不同的终端上载有的医疗项目软件提供SDK工具包,以满足医疗项目软件的业务需求。下面通过具体的实施例对本发明进行详细的描述。请参阅图2所示,图2为本发明实施例提供的软件开发工具包的生成方法的一个流程示意图,包括如下步骤:
S1、获取宿主项目的业务需求,解析获取所述业务需求的功能信息和架构信息。
本发明提供软件开发工具包的生成方法,可应用于能够与承载不同宿主项目的终端对接的打包服务端,宿主项目可基于信息安全的考虑和业务本事的需要,在己方的承载终端录入业务需求,而打包服务端则通过网络通信从所述终端处获取宿主项目的业务需求,并解析业务需求获取适应宿主项目的架构信息和功能信息。
例如,在数字医疗领域中,外部客户可登录医疗项目软件,在医疗项目软件录入业务需求,如在挂号平台软件中需求更新对接医院挂号系统的接口,从而通过终端将业务需求发送给处于医疗系统的打包服务端,打包服务端获取并解析从载有医疗项目软件的终端处获得的业务需求,从而解析获取业务需求对应的需求功能以及发送终端的设备信息。
其中,所述宿主项目的业务需求包括宿主项目的设备信息和需求功能,打包服务端根据所述设备信息和需求功能获取对应业务需求的架构信息和功能信息。如图3所示,步骤S1中,也即获取宿主项目的业务需求,解析获取所述业务需求的功能信息和架构信息,包括如下步骤:
S11、通过网络通信获取宿主项目的业务需求,所述业务需求包括宿主项目的设备信息和需求功能;
S12、基于所述设备信息和需求功能,获取所述业务需求对应SDK工具包的架构信息;具体包括,根据所述设备信息中的软件框架、硬件平台、操作系统获取构建SDK工具包的基础要素信息;根据需求功能确定所要构建SDK工具包的模块结构,所述模块结构包括业务功能对应各个功能模块之间的功能依赖关系;汇总所述基础要素信息和模块结构作为对应所述业务需求的架构信息。
S13、根据所述架构信息和需求功能,获取对应所述业务需求的功能信息。所述功能信息包括对应业务需求的业务功能和与业务功能对应的应用信息。
接着,执行步骤S2、根据所述功能信息,调取预存在数据库中的资源文件和源代码进行模块化,获得对应的多个功能模块。
在步骤S2中,打包服务端根据业务需求的功能信息,通过路由机制和模块注册机制等方式将实现业务需求的程序模块化,从而获取对应不同功能的多个功能模块,总体上可使得多个功能模块相互之间的依赖关系很小,以便于对各个功能模块的分离调用运行、重新组合和重新编译。
其中,模块注册机制基于注册器和构建器,不需要在原有框架代码中进行改动,即可以轻松地进行模块拓展。模块注册机制通过使用注册器管理字符串到类的映射,其中支持注册的模块类型包括但不限于模型结构、数据预处理模块、优化器。使用构建器可以将配置文件转换成对应的模块,其提供了灵活的构建方式,使得可以构建定制化的训练流水线。模块注册机制的另一特性是采用分层策略划分模块的注册域,不仅能够避免跨项目间同名模块的冲突,也能够支持跨项目间模块的相互调用。
此外,需要说明的是,打包服务端在面向不同宿主项目的业务服务时,可根据不同业务服务组合之间的相同和差异,从数据库中调取相似度高的多个功能模块进行适应性编译和重新组合,从而重复利用已有的资源,高效且便捷的为不同客户、不同项目提供有差异的SDK工具包。例如,在常见的安卓项目中,打包服务端可以在gradle.properties设置项目依赖的开关,来根据与宿主项目的相关值对不同的功能模块进行取舍。
具体地,如图4所示,步骤S2中,也即根据所述功能信息,调取预存在数据库中的资源文件和源代码进行模块化,获得对应的多个功能模块,包括如下步骤:
S21、解析所述功能信息,从所述功能信息中获取业务功能和与所述业务功能对应的应用信息;其中,所述业务功能包括对应业务功能的多个功能模块信息,所述应用信息包括各个功能模块对应的应用场景和服务对象。
S22、根据所述业务功能,遍历预存在数据库中的资源文件,为所述业务功能匹配相关度高的资源文件;其中,在遍历预存在数据库中的资源文件过程中,通过计算遍历的每个资源文件与业务功能的相关值,来挑选相关值高的多个资源文件作为对应业务功能的程序文件。
如应用在数字医疗领域中的挂号平台软件时,打包服务端在医疗系统中根据需求更新对接医院挂号系统接口的业务功能,遍历医疗系统的数据库,从数据库中检索需求更新医院的接口信息,获取需求更新医院的接口的地址,以生成接口程序文件作为对应业务功能的资源文件。S23、根据所述应用信息,调用所述源代码编译所述资源文件,将所述资源文件模块化为与所述功能信息对应的多个功能模块。
在步骤S23中,打包服务端根据与业务功能对应的应用信息,调用数据库中对应的源代码对匹配不同功能的资源文件进行编译,将资源文件的编译语言与宿主项目的操作系统对齐,并为资源文件添加能被宿主项目调用运行的调用标识,从而将资源文件模块化为能被宿主项目执行的功能模块。
具体地,如图5所示,步骤S23中,也即根据所述应用信息,调用所述源代码编译所述资源文件,将所述资源文件模块化为与所述功能信息对应的多个功能模块,包括如下步骤:
S231、根据所述应用信息的应用场景,确定与所述宿主项目相匹配的编译语言,根据与所述宿主项目相匹配的编译语言调用对应的所述源代码编译所述资源文件,使所述资源文件的编译语言与宿主项目所在的操作系统对齐;
S232、根据所述应用信息的服务对象,从数据库中调取相应的编译工具,通过编译工具调用对应的源代码对匹配不同功能的资源文件进行编译,为所述资源文件添加调用标识,以生成与所述业务功能对应的功能模块。其中,资源文件编译添加调用标识后,与SDK工具包内的其他程序文件呈现弱依赖关系,从而以功能模块形式存在,具体表现为模块化的资源文件在SDK工具包中可通过自身调用标识响应调用指令而独立运行。
需要说明的是,所述服务对象包括各个功能模块运行时与宿主项目的依赖关系,打包服务端则根据对应业务功能的服务对象,为资源文件添加对应的调用标识,从而将资源文件模块化形成功能模块。而宿主项目在运行SDK工具包时,则可通过向SDK工具包发送调用指令来匹配对应的调用标识,SDK工具包中调用标识响应调用指令运行对应的功能模块,实现宿主项目需求的业务功能。
并且,在步骤S232中,打包服务端根据宿主项目的操作系统,采用对应的编译工具对资源文件进行编译工作。例如,当所宿主项目的操作系统为安卓系统时,通过编译插件对资源文件进行编译;当宿主项目的操作系统为IOS系统时,通过编译宏对资源文件进行编译。
接着,执行步骤S3、根据所述架构信息,将多个所述功能模块进行组合打包,生成并输出软件开发工具包(即SDK工具包)。
具体地,如图6所示,步骤S3中,也即根据所述架构信息,将多个所述功能模块进行组合打包,生成并输出软件开发工具包(即SDK工具包),包括如下步骤:
S31、根据所述架构信息构建所述SDK工具包的拓扑架构;其中,打包服务端从数据库中调用与基础要素信息相配的源代码,按照架构信息中的模块结构来构建所述SDK工具包的拓扑架构。
S32、按照所述架构信息,将所述多个功能模块填入拓扑架构中,生成内核包;其中,按照所述架构信息的模块结构,依据功能模块之间依赖关系将多个功能模块填入拓扑架构中,并对拓扑架构所包含的代码进行编译生成SDK工具包的内核包。例如:通过ant脚本编译整个拓扑架构所包含的代码,生成.jar包。
S33、将所述内核包打包为外壳包,生成SDK工具包;其中,打包服务端为内核包配置全局感知文件,并在将内壳包打包为外壳包来生成SDK工具包时,通过静态配置或动态更新的方式,将全局感知文件配置给宿主项目,以便于宿主项目可通过全局感知文件感知识别和运行SDK工具包中的各个功能模块。
在本发明一实施例中,在步骤S33中,通过静态配置的方式,将全局感知文件和内核包一起打包外壳包,从而为SDK工具包配置能被宿主项目运行的全局感知文件。具体地,如图7所示,在步骤S33中,也即将所述内核包打包为外壳包,生成SDK工具包,包括如下步骤:
S331、遍历所述内核包的所述功能模块,获取所述内核包中功能模块的模块列表信息;
S332、根据所述架构信息和模块列表信息,生成与所述内核包对应的全局感知文件;
S333、将所述全局感知文件与内核包打包进外壳包,生成SDK工具包。
在本发明另一实施例中,在步骤S33中,通过动态更新的方式,在将内核包打包为外壳包时,为外壳包添加识别标识,从而使得生成的SDK工具包在运行时可根据识别标识从打包服务端动态获取对应的全局感知文件,以供宿主项目使用。具体地,如图8所示,在步骤S33'中,也即将所述内核包打包为外壳包,生成SDK工具包,包括如下步骤。
S331'、遍历所述内核包的所述功能模块,获取所述内核包中功能模块的模块列表信息;
S332'、根据所述架构信息和模块列表信息,生成与所述内核包对应的全局感知文件;
S333'、将所述内核包打包进外壳包,并为所述外壳包添加对应所述全局感知文件的识别标识,以生成SDK工具包。
其中,在本实施例中,宿主项目在运行SDK工具包时,可根据所述SDK 工具包的识别标识,向打包服务端申请获取对应该SDK工具包的全局感知文件,宿主项目根据获取的全局感知文件感知SDK工具包中的功能模块,以便于运行需求功能模块,实现相关功能。
在上述实施例的步骤S33中,通过遍历所述内核包的所述功能模块,来获取内核包中全部功能模块的模块列表信息;而后基于所述架构信息和模块列表信息,生成匹配宿主项目操作系统的全局感知文件。其中,由于全局感知文件根据内核包中模块列表信息构建而成,因此宿主项目文件在运行SDK工具包时,能够通过全局感知文件感知识别SDK工具包中内置的各个功能模块,进而针对性的向SDK工具包发送调用指令,利用调用指令匹配需求功能模块的调用标识,从而运行对应的功能模块。
并且,在上述实施例中,如图9所示,在步骤S332和步骤S332'中,也即根据所述架构信息和模块列表信息,生成与所述内核包对应的全局感知文件,包括如下步骤:
S3321、根据所述架构信息,获取宿主项目的操作系统;
S3322、若宿主项目的操作系统为安卓系统,则根据所述模块列表信息配置 java反射为全局感知文件,所述java反射能够感知所述内核包中对应的功能模块;
S3323、若宿主项目的操作系统为IOS系统,则根据所述模块列表信息设置模块注册/查询文件为全局感知文件,所述模块注册/查询文件能够响应宿主项目查询指令感知对应的所述内核包中对应的功能模块。
此外,在本发明一实施例中,在步骤S33中,为了提升SDK工具包的安全性,在不影响生成的SDK工具包可以正常运行的前提性,在将所述内核包打包为外壳包前,对内核包进行混淆处理,增加被破译的难度。例如,打包服务端通过初始化一个ProguardJarTask任务来执行内核包的混淆处理工作,该任务由继承自proguard.gradle.ProGuardTask的ProguardJarTask类生成。
S34、输出所述SDK工具包,供所述宿主项目调用。
综上所述,上述软件开发工具包的生成方法、装置、设备及存储介质,能够在面对不同客户的不同业务,调用预存在数据库中的资源文件和源代码,生成与宿主项目的业务需求相匹配的SDK工具包,从而结合业务组件化和可配置化的技术,实现用一套代码为不同客户的不同项目提供差异化SDK工具包的软件工程方案。本发明的软件开发工具包的生成方法、装置、设备及存储介质,在面对不同宿主项目时可以很好地减少代码的分支,使所有的代码维护工作集中在同一个分支上,潜在地使所有用户的服务代码维持在最新的状态上,从而有效地提升代码维护的效率,减少开发和测试的消耗,降低维护的风险,尤其对于一些同时提供多种服务的复杂场景,例如公司ToB业务的开展,有着积极的意义。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种软件开发工具包的生成装置,该软件开发工具包的生成装置与上述实施例中软件开发工具包的生成方法一一对应。软件开发工具包的生成装置包括可应用于能够与承载不同宿主项目的终端对接的打包服务端,宿主项目可基于信息安全的考虑和业务本事的需要,在己方的承载终端录入业务需求,而打包服务端则通过网络通信从所述终端处获取宿主项目的业务需求,并解析业务需求获取适应宿主项目的架构信息和功能信息
如图10所示,该软件开发工具包的生成装置10包括业务需求获取单元11、功能模块生成单元12和工具包输出单元13。各功能模块详细说明如下:
业务需求获取单元11,用于获取宿主项目的业务需求,解析所述业务需求获取所要输出SDK工具包的功能信息和架构信息;
功能模块生成单元12,用于根据所述功能信息,调取资源文件和源代码进行模块化,获得对应的多个功能模块;
工具包输出单元13,用于根据所述架构信息,将多个所述功能模块进行组合打包,生成并输出SDK工具包。
在一实施例中,业务需求获取单元11,具体用于:
通过网络通信获取宿主项目的业务需求,所述业务需求包括宿主项目的设备信息和需求功能;
基于所述设备信息和需求功能,获取所述业务需求对应SDK工具包的架构信息;
根据所述架构信息和需求功能,获取对应所述业务需求的功能信息。所述功能信息包括对应业务需求的业务功能和与业务功能对应的应用信息。
在一实施例中,功能模块生成单元12,具体用于:
获取所述功能信息,所述功能信息包括业务功能和与所述业务功能对应的应用信息;
根据所述业务功能,遍历数据库中的资源文件,为所述业务功能匹配相关度高的资源文件;
根据所述应用信息,调用所述源代码编译所述资源文件,获取与所述功能信息对应的多个功能模块。
在一实施例中,功能模块生成单元12,具体用于:
根据所述应用信息的应用场景,确定与所述宿主项目相匹配的编译语言,根据与所述宿主项目相匹配的编译语言调用对应的所述源代码编译所述资源文件,使所述资源文件的编译语言与宿主项目所在的操作系统对齐;
根据所述应用信息的服务对象,从数据库中调取对应的所述源代码为所述资源文件添加调用标识,以生成与所述业务功能对应的功能模块。
其中,功能模块生成单元12根据宿主项目的操作系统,采用对应的编译工具对资源文件进行编译工作。例如,当所宿主项目的操作系统为安卓系统时,功能模块生成单元12通过编译插件对资源文件进行编译;当宿主项目的操作系统为IOS系统时,功能模块生成单元12通过编译宏对资源文件进行编译。
在一实施例中,工具包输出单元13,具体用于:
根据所述架构信息构建所述SDK工具包的拓扑架构;其中,打包服务端从数据库中调用与基础要素信息相配的源代码,按照架构信息中的模块结构来构建所述SDK工具包的拓扑架构。
按照所述架构信息,将所述多个功能模块填入拓扑架构中,生成内核包;其中,按照所述架构信息的模块结构,依据功能模块之间依赖关系将多个功能模块填入拓扑架构中,并对拓扑架构所包含的代码进行编译生成SDK工具包的内核包。例如:通过ant脚本编译整个拓扑架构所包含的代码,生成.jar包。
将所述内核包打包为外壳包,生成SDK工具包;其中,打包服务端为内核包配置全局感知文件,并在将内壳包打包为外壳包来生成SDK工具包时,通过静态配置或动态更新的方式,将全局感知文件配置给宿主项目,以便于宿主项目可通过全局感知文件感知识别和运行SDK工具包中的各个功能模块。
在一实施例中,工具包输出单元13,具体用于:
遍历所述内核包的所述功能模块,获取所述内核包中功能模块的模块列表信息;
根据所述架构信息和模块列表信息,生成与所述内核包对应的全局感知文件;
将所述全局感知文件与内核包打包进外壳包,生成SDK工具包。
在一实施例中,工具包输出单元13,具体用于:
遍历所述内核包的所述功能模块,获取所述内核包中功能模块的模块列表信息;
根据所述架构信息和模块列表信息,生成与所述内核包对应的全局感知文件;
将所述内核包打包进外壳包,并为所述外壳包添加对应所述全局感知文件的识别标识,以生成SDK工具包。
在一实施例中,工具包输出单元13,具体用于:
根据所述架构信息,获取宿主项目的操作系统;
若宿主项目的操作系统为安卓系统,则根据所述模块列表信息配置java反射为全局感知文件,所述java反射能够感知所述内核包中对应的功能模块;
若宿主项目的操作系统为IOS系统,则根据所述模块列表信息设置模块注册/查询文件为全局感知文件,所述模块注册/查询文件能够响应宿主项目查询指令感知对应的所述内核包中对应的功能模块。
关于软件开发工具包的生成装置10的具体限定可以参见上文中对于软件开发工具包的生成方法的限定,在此不再赘述。上述软件开发工具包的生成装置10中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种软件开发工具包的生成方法的功能或步骤。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取宿主项目的业务需求,解析获取所述业务需求的功能信息和架构信息;
根据所述功能信息,调取预存在数据库中的资源文件和源代码进行模块化,获得对应的多个功能模块;
根据所述架构信息,将多个所述功能模块进行组合打包,生成并输出SDK 工具包。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取宿主项目的业务需求,解析获取所述业务需求的功能信息和架构信息;
根据所述功能信息,调取预存在数据库中的资源文件和源代码进行模块化,获得对应的多个功能模块;
根据所述架构信息,将多个所述功能模块进行组合打包,生成并输出SDK 工具包。
需要说明的是,上述关于计算机可读存储介质或计算机设备所能实现的功能或步骤,可对应参阅前述方法实施例中,服务端侧以及客户端侧的相关描述,为避免重复,这里不再一一描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程 ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限, RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步 DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM (ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus) 直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种软件开发工具包的生成方法,其特征在于,包括:
获取宿主项目的业务需求,解析获取所述业务需求的功能信息和架构信息;
根据所述功能信息,调取预存在数据库中的资源文件和源代码进行模块化,获得对应的多个功能模块;
根据所述架构信息,将多个所述功能模块进行组合打包,生成并输出软件开发工具包。
2.根据权利要求1所述软件开发工具包的生成方法,其特征在于,所述根据所述功能信息,调取预存在数据库中的资源文件和源代码进行模块化,获得对应的多个功能模块,包括:
解析所述功能信息,获取业务功能和与所述业务功能对应的应用信息;
根据所述业务功能,遍历数据库中的资源文件,为所述业务功能匹配相关度高的资源文件;
根据所述应用信息,调用所述源代码编译所述资源文件,将所述资源文件模块化为与所述功能信息对应的多个功能模块。
3.根据权利要求2所述软件开发工具包的生成方法,其特征在于,所述根据所述应用信息,调用所述源代码编译所述资源文件,将所述资源文件模块化为与所述功能信息对应的多个功能模块,包括:
根据所述应用信息的应用场景,确定与所述宿主项目相匹配的编译语言,根据与所述宿主项目相匹配的编译语言调用对应的所述源代码编译所述资源文件,使所述资源文件的编译语言与宿主项目所在的操作系统对齐;
根据所述应用信息的服务对象,从数据库中调取相应的编译工具,通过所述编译工具调用对应的所述源代码对匹配不同功能的资源文件进行编译,为所述资源文件添加调用标识,以生成与所述业务功能对应的功能模块。
4.根据权利要求1所述软件开发工具包的生成方法,其特征在于,所述根据所述架构信息,将多个所述功能模块进行组合打包,生成并输出软件开发工具包,包括:
根据所述架构信息构建所述软件开发工具包的拓扑架构;
按照所述架构信息,将所述多个功能模块填入拓扑架构中,生成内核包;
将所述内核包打包为外壳包,生成软件开发工具包;
输出所述软件开发工具包,以供所述宿主项目调用。
5.根据权利要求4所述软件开发工具包的生成方法,其特征在于,所述将所述内核包打包为外壳包,生成软件开发工具包,包括:
遍历所述内核包的所述功能模块,获取所述内核包中功能模块的模块列表信息;
根据所述架构信息和模块列表信息,生成与所述内核包对应的全局感知文件;
将所述全局感知文件与内核包打包进外壳包,生成软件开发工具包。
6.根据权利要求4所述软件开发工具包的生成方法,其特征在于,所述将所述内核包打包为外壳包,生成软件开发工具包,包括:
遍历所述内核包的所述功能模块,获取所述内核包中功能模块的模块列表信息;
根据所述架构信息和模块列表信息,生成与所述内核包对应的全局感知文件;
将所述内核包打包进外壳包,并为所述外壳包添加与所述全局感知文件对应的识别标识,以生成软件开发工具包。
7.根据权利要求5或6所述软件开发工具包的生成方法,其特征在于,所述根据基于所述架构信息,通过遍历所述内核包中的所述功能模块,生成对应所述内核包的全局感知文件,包括:
根据所述架构信息,获取宿主项目的操作系统;
若宿主项目的操作系统为安卓系统,则根据所述模块列表信息配置java反射为全局感知文件,所述java反射能够感知所述内核包中对应的功能模块;
若宿主项目的操作系统为IOS系统,则根据所述模块列表信息设置模块注册/查询文件为全局感知文件,所述模块注册/查询文件能够响应宿主项目查询指令感知对应的所述内核包中对应的功能模块。
8.一种软件开发工具包的生成装置,其特征在于,包括:
业务需求获取单元,用于获取宿主项目的业务需求,解析获取所述业务需求的功能信息和架构信息;
功能模块生成单元,用于根据所述功能信息,调取预存在数据库中的资源文件和源代码进行模块化,获得对应的多个功能模块;
工具包输出单元,用于根据所述架构信息,将多个所述功能模块进行组合打包,生成并输出软件开发工具包。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211276982.8A CN115543419A (zh) | 2022-10-18 | 2022-10-18 | 一种软件开发工具包的生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211276982.8A CN115543419A (zh) | 2022-10-18 | 2022-10-18 | 一种软件开发工具包的生成方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115543419A true CN115543419A (zh) | 2022-12-30 |
Family
ID=84735112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211276982.8A Pending CN115543419A (zh) | 2022-10-18 | 2022-10-18 | 一种软件开发工具包的生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115543419A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450107A (zh) * | 2023-04-04 | 2023-07-18 | 北京科乐园网络科技有限公司 | 低代码平台二次开发软件的方法、装置、电子设备 |
CN117149140A (zh) * | 2023-09-14 | 2023-12-01 | 睿珀智能科技有限公司 | 一种用于编码的架构信息生成方法、装置及相关设备 |
CN118331588A (zh) * | 2024-06-13 | 2024-07-12 | 杭州行至云起科技有限公司 | 代码库封装方法、程序打包方法及装置 |
CN118569654A (zh) * | 2024-08-02 | 2024-08-30 | 湖南长银五八消费金融股份有限公司 | 一种软件开发需求上线风险识别方法、装置、设备及介质 |
-
2022
- 2022-10-18 CN CN202211276982.8A patent/CN115543419A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450107A (zh) * | 2023-04-04 | 2023-07-18 | 北京科乐园网络科技有限公司 | 低代码平台二次开发软件的方法、装置、电子设备 |
CN116450107B (zh) * | 2023-04-04 | 2023-12-01 | 北京科乐园网络科技有限公司 | 低代码平台二次开发软件的方法、装置、电子设备 |
CN117149140A (zh) * | 2023-09-14 | 2023-12-01 | 睿珀智能科技有限公司 | 一种用于编码的架构信息生成方法、装置及相关设备 |
CN117149140B (zh) * | 2023-09-14 | 2024-03-12 | 睿珀智能科技有限公司 | 一种用于编码的架构信息生成方法、装置及相关设备 |
CN118331588A (zh) * | 2024-06-13 | 2024-07-12 | 杭州行至云起科技有限公司 | 代码库封装方法、程序打包方法及装置 |
CN118569654A (zh) * | 2024-08-02 | 2024-08-30 | 湖南长银五八消费金融股份有限公司 | 一种软件开发需求上线风险识别方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115543419A (zh) | 一种软件开发工具包的生成方法、装置、设备及存储介质 | |
CN110928529B (zh) | 辅助算子开发的方法和系统 | |
CN109766124B (zh) | 业务开发方法、装置、计算机设备和存储介质 | |
CN110365751B (zh) | 网关系统的业务处理方法、装置及设备 | |
CN111736954B (zh) | 多智能合约虚拟机实现方法、多智能合约虚拟机及系统 | |
CN110780853A (zh) | 前端框架及开发方法、存储介质、电子设备 | |
US10261810B2 (en) | System and method for providing cloud operating system validations for a domain-specific language for cloud services infrastructure | |
GB2589658A (en) | Method and apparatus for running an applet | |
CN105718251A (zh) | 多语言sdk自动化实现方法及系统 | |
CN108762767B (zh) | 应用发布方法、装置及计算机可读存储介质 | |
CN111367510A (zh) | 一种安卓功能模块开发的方法及装置 | |
US11720532B2 (en) | System and method for customized graphQL data-handling scripts | |
CN108965375B (zh) | 服务调用代理控制系统、方法、服务器及可读存储介质 | |
US10083029B2 (en) | Detect application defects by correlating contracts in application dependencies | |
CN107508846B (zh) | 应用客户端的更新方法和系统及终端设备 | |
CN117093286B (zh) | 插件生成方法、装置、设备及计算机可读存储介质 | |
CN112667287A (zh) | 规则文件的创建方法、装置、设备及计算机可读存储介质 | |
CN113987337A (zh) | 基于组件化动态编排的搜索方法、系统、设备及存储介质 | |
CN113360156B (zh) | 一种ios编译方法及相关设备 | |
WO2022099913A1 (zh) | 界面配置方法、装置、设备及介质 | |
US11429358B2 (en) | Representing asynchronous state machine in intermediate code | |
CN115237459A (zh) | 软件开发工具包生成方法、装置、设备、存储介质及产品 | |
CN114003486A (zh) | 一种插件调试方法、客户端、服务器及存储介质 | |
CN115022312A (zh) | 多智能合约引擎的实现方法、装置、电子设备及存储介质 | |
CN106775900B (zh) | 应用浏览器的调用方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |