CN110286939A - 软件开发工具包的开发方法、装置、设备及存储介质 - Google Patents
软件开发工具包的开发方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110286939A CN110286939A CN201910433180.5A CN201910433180A CN110286939A CN 110286939 A CN110286939 A CN 110286939A CN 201910433180 A CN201910433180 A CN 201910433180A CN 110286939 A CN110286939 A CN 110286939A
- Authority
- CN
- China
- Prior art keywords
- information
- software development
- development kit
- interface
- target
- 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
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
Abstract
本发明公开了一种基于软件开发的软件开发工具包的开发方法、装置、设备及存储介质,所述方法包括:获取当前待开发软件开发工具包的项目需求,所述当前待开发软件开发工具包用于调用网关应用程序编程接口;判断所述项目需求中是否存有通信信息,根据判断结果确定类别信息;根据所述类别信息创建目标流程图;接收框架编写指令,获取目标框架结构以及接口信息以及预设类信息;将所述接口信息以及预设类进行封装生成目标软件开发工具包。本发明将调用接口信息以及预设类信息进行封装生成软件开发工具包,只需调用软件开发工具包,即可实现对网关接口的调用,提高网关调用的便利性。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种软件开发工具包的开发方法、装置、设备及存储介质。
背景技术
目前,在安卓系统或者是苹果系统IOS系统中,为了实现前台与后台之间的通信,通常通过调用应用程序接口网关,将所述应用程序接口网关作为中间层,将前台数据与后台数据进行交互,但是,为了调用应用程序接口网关,需要首先执行前台或者后台各自的逻辑,在多业务处理的情况下,需要在前台或者后台之间进行频繁调用。
发明内容
本发明的主要目的在于提出一种软件开发工具包的开发方法、装置、设备及存储介质,旨在提高网关调用的便利性。
为实现上述目的,本发明提供一种软件开发工具包的开发方法,所述软件开发工具包的开发方法包括以下步骤:
获取当前待开发软件开发工具包的项目需求,其中,所述当前待开发软件开发工具包用于调用网关应用程序编程接口;
判断所述项目需求中是否存有通信信息,根据判断结果确定所述当前待开发软件开发工具包的类别信息;
根据所述类别信息创建所述当前待开发软件开发工具包的目标流程图;
接收框架编写指令,提取所述框架编写指令中的待开发软件工具包的历史框架结构,根据所述目标流程图对所述历史框架结构进行调整,将调整后的历史框架结构作为目标框架结构,并接收框架编辑指令,提取所述框架编辑指令中的接口信息以及预设类信息;
将所述接口信息以及所述预设类信息进行封装生成目标软件开发工具包。
优选地,所述判断所述项目需求中是否存有通信信息,根据判断结果确定所述当前待开发软件开发工具包的类别信息,包括:
提取所述项目需求中的参考关键字信息,将所述通信信息作为目标关键字信息;
将所述参考关键字信息与所述目标关键字信息进行比较,根据比较结果判断所述项目需求中是否存有通信信息;
在所述项目需求中存有所述通信信息时,确定所述当前待开发软件开发工具包的类别为跨进程通信类;
在所述项目需求中未存有所述通信信息时,确定所述当前待开发软件开发工具包的类别为单一进程类。
优选地,所述根据所述类别信息创建所述当前待开发软件开发工具包的目标流程图,包括:
提取所述类别信息对应的目标标签信息;
根据所述目标标签信息在关系映射表中查找对应的参考流程图,并接收调整指令,根据所述调整指令对所述参考流程图进行更新,将更新后的参考流程图作为所述目标流程图。
优选地,所述根据所述目标标签信息在关系映射表中查找对应的参考流程图之前,所述方法还包括:
获取历史标签信息与历史流程图的对应关系,根据所述对应关系建立所述关系映射表。
优选地,所述将所述接口信息以及所述预设类信息进行封装生成目标软件开发工具包,包括:
接收源代码展示指令,根据所述源代码展示指令展示历史源代码信息,将所述接口信息以及所述预设类信息添加入所述历史源代码信息,生成原始源代码信息;
调用预设封装工具,通过所述预设封装工具提取所述原始源代码信息中的参数信息,将所述参数信息的属性设置为私有属性,对设置属性后的参数信息进行赋值,并将赋值后的参数信息进行封装生成目标软件开发工具包。
优选地,所述调用预设封装工具之前,所述方法还包括:
将所述原始源代码信息与预设参考源代码信息进行比较,判断所述原始源代码信息中是否含有预设参考源代码信息,将含有的预设参考源代码信息;
所述调用预设封装工具,通过所述预设封装工具提取所述原始源代码信息中的参数信息,将所述参数信息的属性设置为私有属性,对设置属性后的参数信息进行赋值,并将赋值后的参数信息进行封装生成目标软件开发工具包,包括:
调用预设封装工具,通过所述预设封装工具提取所述待封装源代码信息中的参数信息,将所述参数信息的属性设置为私有属性,对设置属性后的参数信息进行赋值,并将赋值后的参数信息进行封装;
提取所述待封装源代码信息中的接口信息,根据所述接口信息预留外部接口用于外部访问;
将对应的接口信息设置外部接口,将设置后的代码信息以及封装后的代码信息作为所述目标软件开发工具包。
优选地,所述将对应的接口信息设置外部接口,将设置后的代码信息以及封装后的代码信息作为所述目标软件开发工具包,包括:
获取所述待封装源代码信息对应的接口信息,根据预设公式得到待填充数据长度,根据所述待填充数据长度对所述接口信息进行数据填充,并将填充后的接口信息添加预设长度;
将添加后的接口信息以预设位为单位进行分组,并获取加密信息,以所述加密信息为起始变量对每个分组进行计算,得到预设个数的变量,再以所述变量进行计算,直至达到预设条件,得到目标接口信息,将所述目标接口信息作为加密后的接口信息;
对所述加密后的接口信息设置外部接口,将外部接口以及封装后的代码信息作为所述目标软件开发工具包。
此外,为实现上述目的,本发明还提出一种软件开发工具包的开发装置,其特征在于,所述软件开发工具包的开发装置包括:
获取模块,用于获取当前待开发软件开发工具包的项目需求,其中,所述当前待开发软件开发工具包用于调用网关应用程序编程接口;
判断模块,用于判断所述项目需求中是否存有通信信息,根据判断结果确定所述当前待开发软件开发工具包的类别信息;
创建模块,用于根据所述类别信息创建所述当前待开发软件开发工具包的目标流程图;
编写模块,用于接收框架编写指令,提取所述框架编写指令中的待开发软件工具包的历史框架结构,根据所述目标流程图对所述历史框架结构进行调整,将调整后的历史框架结构作为目标框架结构,并接收框架编辑指令,提取所述框架编辑指令中的接口信息以及预设类信息;
封装模块,用于将所述接口信息以及所述预设类信息进行封装生成目标软件开发工具包。
此外,为实现上述目的,本发明还提出一种软件开发工具包的开发设备,所述软件开发工具包的开发设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件开发工具包的开发程序,所述软件开发工具包的开发程序配置为实现如上所述的软件开发工具包的开发方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有软件开发工具包的开发程序,所述软件开发工具包的开发程序被处理器执行时实现如上文所述的软件开发工具包的开发方法的步骤。
本发明提出的软件开发工具包的开发方法,通过获取当前待开发软件开发工具包的项目需求,其中,所述当前待开发软件开发工具包用于调用网关应用程序编程接口;判断所述项目需求中是否存有通信信息,根据判断结果确定所述当前待开发软件开发工具包的类别信息;根据所述类别信息创建所述当前待开发软件开发工具包的目标流程图;接收框架编写指令,提取所述框架编写指令中的待开发软件工具包的历史框架结构,根据所述目标流程图对所述历史框架结构进行调整,将调整后的历史框架结构作为目标框架结构,并接收框架编辑指令,提取所述框架编辑指令中的接口信息以及预设类信息;将所述接口信息以及所述预设类信息进行封装生成目标软件开发工具包,从而将调用接口信息以及预设类信息进行封装生成目标软件开发工具包,只需调用目标软件开发工具包,即可实现对网关接口的调用,提高网关调用的便利性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明软件开发工具包的开发方法第一实施例的流程示意图;
图3为本发明软件开发工具包的开发方法第二实施例的流程示意图;
图4为本发明软件开发工具包的开发方法第三实施例的流程示意图;
图5为本发明软件开发工具包的开发装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图。
如图1所示,该设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如按键,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及软件开发工具包的开发程序。
在图1所示的设备中,网络接口1004主要用于连接外网,与其他网络设备进行数据通信;用户接口1003主要用于连接用户设备,与设备进行数据通信;本发明设备通过处理器1001调用存储器1005中存储的软件开发工具包的开发程序,并执行本发明实施例提供的软件开发工具包的开发的实施方法。
基于上述硬件结构,提出本发明软件开发工具包的开发方法实施例。
参照图2,图2为本发明软件开发工具包的开发方法第一实施例的流程示意图。
在第一实施例中,所述软件开发工具包的开发方法包括以下步骤:
步骤S10,获取当前待开发软件开发工具包的项目需求,其中,所述当前待开发软件开发工具包用于调用网关应用程序编程接口。
需要说明的是,本实施例的执行主体为软件开发平台,还可为管理软件开发的服务器,本实施例对比不作限制,在进行软件开发工具包的开发工作之前,首先需要制定当前待开发调用网关应用程序接口的软件开发工具包的需求分析文档,通过所述需求分析文档可获取当前待开发工具包需要实现的功能等,例如调用的函数信息,配置的参数信息等。
可理解的是,所述软件开发工具包为(Software Development Kit,SDK),为辅助开发某一类软件的相关文档、范例和工具的集合,应用程序编程接口(ApplicationProgramming Interface,API)是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令,从而实现前台与后台之间的数据通信。
在本实施例中,通过针对调用网关应用程序编程接口开发软件工具包,从而通过开发后的软件工具包实现对应用程序编程接口的调用,达到简化接口的调用,提高系统执行效率。
步骤S20,判断所述项目需求中是否存有通信信息,根据判断结果确定所述当前待开发软件开发工具包的类别信息。
需要说明的是,SDK按功能分类可以分为两大类,其中,一类是工具类SDK,例如安卓SDK以及Java语言的软件开发工具包(Java Development Kit,JDK)等属于工具类,一类是服务类SDK,例如讯飞SDK,腾讯SDK等等,如果按照通信方式进行分类,可分为跨进程通信类SDK和单一进程SDK,其中,跨进程通信类SDK需要在应用之间进行通信或者说是应用之间的一个纽带,例如调用微信的分享功能,或者手机的打电话,发短信,相机等等,都属于是跨进程通信,单一进程SDK或者说主线程SDK,该SDK大部分是工具类SDK,用来提供某些独立的功能,比如统一的网络管理,文件管理以及文本格式化等。
在具体实现中,通过判断所述项目需求中是否存有通信信息,例如接口访问,在存有接口访问时,则可确定所述当前待开发软件开发工具包的类别信息,从而保证项目开发的准确性。
步骤S30,根据所述类别信息创建所述当前待开发软件开发工具包的目标流程图。
需要说明的是,在基于软件开发平台进行软件开发时需要针对当前开发项目建立开发项目示例以及目标流程图,其中,所述待开发项目示例为开发平台上该事件的名称,从而与其他开发任务进行区分,所述目标通信流程图为待开发软件的通信方式,在一般情况下,包括跨进程通信类SDK,跨进程SDK主要流程是服务端通过统一的接口实现类来提供服务,接口实现类使用单例保证程序运行过程中的唯一性,客户端通过SDK提供的接口来调用任务中接口所提供的功能,通过预设机制来完成通信,需要提供错误回调机制,提交错误监听,可以有必要的工具类以及其他需要在客户端用到的类,还包括单一进程SDK,单一进程SDK主要是通过SDK来提供所需要的的功能,不需要服务端来进行配合,使用起来简单,按需来添加回调监听,也可以有必要的工具类以及其他需要在客户端用到的类。
步骤S40,接收框架编写指令,提取所述框架编写指令中的待开发软件工具包的历史框架结构,根据所述目标流程图对所述历史框架结构进行调整,将调整后的历史框架结构作为目标框架结构,并接收框架编辑指令,提取所述框架编辑指令中的接口信息以及预设类信息。
需要说明的是,所述框架结构为待开发软件工具包的目录结构,通过所述目录结构实现对各个参数的配置,例如SDK的目录框架,其中,根据所述目录框架建立所述框架结构内的接口信息以及预设类信息。
例如include目录下包括alink_export_gateway.h接口信息,用于SDK网关接口定义,alink_export_subdev.h,用于子设备接口定义,json_parser.h,用于json解析接口定义,供合作伙伴参考,自行选择使用,platform.h,用于平台相关接口定义,由合作伙伴实现,参考alink_platform.c目录,包括product.h目录,用于产品参数接口定义,由合作伙伴实现,参考product.c,包括lib目录和sample目录,其中lib目录包括libalink_agent.a,用于阿里提供的SDK库文件,sample目录,包括demo目录,其中demo目录包括alink_sample.c,从而实现对接口信息的定义。
在本实施例中,通过定义接口的规范,同时对每个接口设置相应的预设类信息,所述预设类信息规定每个接口的具体实现逻辑,保证具体的操作实现,所述预设类信息包括创建进程间通信服务器(Inter-ProcessCommunication,IPC),例如安卓使用Binder进行通信,aidl是通信接口类,IPC通信使用Parcelable进行数据传输。
在具体实现中,为了保证接口信息的安全性,实现客户端和服务器端之间的安全通讯,需要设计了全套的签名策略,只有携带通过复杂的签名算法的签名请求头的请求才会被网关转发给后端服务器,否则请求会被API网关拒绝,因此,在对接口信息进行配置之前,获取加密信息,根据所述加密信息对所述接口信息进行加密,从而保证数据传输的安全性。
步骤S50,将所述接口信息以及所述预设类信息进行封装生成所述目标软件开发工具包。
需要说明的是,在本实施例中,判断当前的通信方式,根据判断结果创建服务类信息,例如创建IPC通信服务类,android使用Binder进行通信,aidl是通信接口类,IPC通信使用Parcelable进行数据传输,从而实现软件开发工具包的通信功能。
在本实施例中,在生成所述目标软件开发工具包之后,还包括获取写入指令,提取所述写入指令中的操作说明,演示版本以及错误码说明,从而实现对软件开发工具包的使用。
本实施例通过上述方案,通过获取当前待开发软件开发工具包的项目需求,其中,所述当前待开发软件开发工具包用于调用网关应用程序编程接口;判断所述项目需求中是否存有通信信息,根据判断结果确定所述当前待开发软件开发工具包的类别信息;根据所述类别信息创建所述当前待开发软件开发工具包的目标流程图;接收框架编写指令,提取所述框架编写指令中的待开发软件工具包的历史框架结构,根据所述目标流程图对所述历史框架结构进行调整,将调整后的历史框架结构作为目标框架结构,并接收框架编辑指令,提取所述框架编辑指令中的接口信息以及预设类信息;将所述接口信息以及所述预设类信息进行封装生成所述目标软件开发工具包,从而将调用接口信息以及预设类信息进行封装生成目标软件开发工具包,只需调用目标软件开发工具包,即可实现对网关接口的调用,提高网关调用的便利性。
在一实施例中,如图3所示,基于第一实施例提出本发明软件开发工具包的开发方法第二实施例,在本实施例中,所述步骤S20,包括:
提取所述项目需求中的参考关键字信息,将所述通信信息作为目标关键字信息。
需要说明的是,所述目标关键字信息可与分享以及通信等相关设计数据交互过程的关键字,通过对项目需求与目标关键字信息进行分析,根据分析结果确定当前待开发软件开发工具包的类别。
将所述参考关键字信息与所述目标关键字信息进行比较,根据比较结果判断所述项目需求中是否存有通信信息。
在具体实现中,在预设区域设置所述目标关键字信息,将所述项目需求中的参考关键字信息与目标关键字信息进行比较,根据比较结果判断项目需求中是否含有通信信息,从而实现在软件开发中根据不同的项目需求自动确定相应的类别信息,提高软件开发的效率。
在本实施例中,在所述项目需求中存有所述通信信息时,确定所述当前待开发软件开发工具包的类别为跨进程通信类,在所述项目需求中未存有所述通信信息时,确定所述当前待开发软件开发工具包的类别为单一进程类。
可以理解的是,首先对所述项目需求进行分析,判断是否服务端进行配合,在需要服务端进行配合时,将所述跨进程通信类方式作为通信方式,在不需要服务端来进行配合,将单一进程SDK作为目标类别,从而实现对软件开发项目的类别确定。
在一实施例中,所述步骤S30,包括:
步骤S301,提取所述类别信息对应的目标标签信息。
在本实施例中,为了获取与所述类别信息对应的流程图信息,在确定类别信息之前在所述类别信息上设置有标签信息,通过所述标签信息可实现对所述类别信息的识别,从而提高数据处理的准确性。
步骤S302,根据所述目标标签信息在关系映射表中查找对应的参考流程图,并接收调整指令,根据所述调整指令对所述参考流程图进行更新,将更新后的参考流程图作为所述目标流程图。
需要说明的是,所述调整指令为开发者通过软件开发平台输入的调整指令,例如对当前展示的默认流程图根据开发者的需求进行个性化的调整,从而满足不同开发者的需求。
在一实施例中,所述步骤S302之前,所述方法还包括:
获取历史标签信息与历史流程图的对应关系,根据所述对应关系建立所述关系映射表。
可以理解的是,通过在预设关系映射表中查找目标类别对应的流程图,其中,所述预设关系映射表中存有历史类别信息与流程图的对应关系,将查找到的流程图作为所述目标流程图。
本实施例提供的方案,通过项目需求确定当前待开发软件开发工具包的类别信息,通过类别信息查找到目标流程图,从而实现自动化的软件开发,并可根据开发者的需求对目标流程图进行调整,满足不同软件开发者的需求。
在一实施例中,如图4所示,基于第一实施例或第二实施例提出本发明软件开发工具包的开发方法第三实施例,在本实施例中,基于第一实施例进行说明,所述步骤S50,包括:
步骤S501,接收源代码展示指令,根据所述源代码展示指令展示历史源代码信息,将所述接口信息以及所述预设类信息添加入所述历史源代码信息,生成原始源代码信息。
在本实施例中,为了实现对代码的封装,生成软件开发工具包,需要将获取的接口信息以及预设类信息生成代码信息,将生成后的代码信息进行封装,从而实现调用网关应用程序接口的软件开发工具包的开发。
步骤S502,调用预设封装工具,通过所述预设封装工具提取所述原始源代码信息中的参数信息,将所述参数信息的属性设置为私有属性,对设置属性后的参数信息进行赋值,并将赋值后的参数信息进行封装生成目标软件开发工具包。
在具体实现中,通过调用预设封装工具,所述预设封装工具可为SC封装工具、EasySysprep等封装工具,还可为实现相同或相似功能的其他形式的封装工具,本实施例对此不作限制。
在本实施例中,提取所述原始源代码信息中的参数信息,将所述参数信息的属性设置为私有属性,并将设置后的参数信息进行赋值,将赋值后的参数信息进行封装,生成目标软件开发工具包,然后,对每个值属性提供对外的公共方法访问,即创建一对赋取值方法,用于对私有属性的访问。
在一实施例中,所述步骤S502之前,所述方法还包括:
将所述原始源代码信息与预设参考源代码信息进行比较,判断所述原始源代码信息中是否含有预设参考源代码信息,将含有的预设参考源代码信息。
需要说明的是,所述预设参考源代码信息为开发者预先制定的需要封装的代码信息,将一些需要调用复杂逻辑的代码进行封装,从而提高调用网关应用程序的效率,通过将原始源代码信息与预设参考源代码信息进行比较,根据比较结果,从而得到原始源代码信息中需要进行封装的代码信息,实现对代码信息进行更细化的处理。
提取所述待封装源代码信息中的接口信息,根据所述接口信息预留外部接口用于外部访问。
在本实施例中,通过将一些通用的逻辑进行封装,将可根据开发者需求进行定义的接口进行预留,将必要的部分代码通过接口的方式进行暴露出来,从而在封装完成之后还可根据用户需求进行调整,提高软件开发的灵活性。
在一实施例中,所述步骤S502,包括:
调用预设封装工具,通过所述预设封装工具提取所述待封装源代码信息中的参数信息,将所述参数信息的属性设置为私有属性,对设置属性后的参数信息进行赋值,并将赋值后的参数信息进行封装;提取所述待封装源代码信息中的接口信息,根据所述接口信息预留外部接口用于外部访问;将对应的接口信息设置外部接口,将设置后的代码信息以及封装后的代码信息作为所述目标软件开发工具包。
在一实施例中,所述将对应的接口信息设置外部接口,将设置后的代码信息以及封装后的代码信息作为所述目标软件开发工具包,包括:
获取所述待封装源代码信息对应的接口信息,根据预设公式得到待填充数据长度,根据所述待填充数据长度对所述接口信息进行数据填充,并将填充后的接口信息添加预设长度。
需要说明的是,为了保证接口信息的安全性,需要对接口信息进行加密处理,在本实施例中,可通过采用消息摘要算法(Message-Digest Algorithm,MD5)的方式进行加密,还可通过其他的加密方式进行加密,本实施例对此不作限制。
在具体实现中,对接口信息进行数据填充,使消息的长度对512取模得448,设消息长度为X,即满足X mod 512=448。根据此公式得出需要填充的数据长度,填充方法为在接口信息后面进行填充,填充第一位为1,其余为0,在填充完成之后再填充上原消息的长度,可用来进行的存储长度为64位。如果消息长度大于264,则只使用其低64位的值,即接口信息的长度对264取模,在此步骤进行完毕后,最终消息长度就是512的整数倍。
然后将添加后的接口信息以预设位为单位进行分组,并获取加密信息,以所述加密信息为起始变量对每个分组进行计算,得到预设个数的变量,再以所述变量进行计算,直至达到预设条件,得到目标接口信息,将所述目标接口信息作为加密后的接口信息,最后对所述加密后的接口信息设置外部接口,将外部接口以及封装后的代码信息作为所述目标软件开发工具包。
需要说明的是,所述加密信息包括4个常数,包括A=0x67452301、B=0x0EFCDAB89、C=0x98BADCFE以及D=0x10325476,4个函数包括F(X,Y,Z)=(X&Y)|((~X)&Z)、G(X,Y,Z)=(X&Z)|(Y&(~Z))、H(X,Y,Z)=X^Y^Z以及I(X,Y,Z)=Y^(X|(~Z)),其中,F、G、H以及I表示经过处理后的目标信息,X、Y以及Z表示选取的接口信息,将接口信息分以512位为一分组进行处理,每一个分组进行4轮变换,将4个常数为起始变量进行计算,重新输出4个变量,以这4个变量再进行下一分组的运算,如果已经是最后一个分组,则这4个变量为最后的结果,即得到加密后的接口信息。
本实施例提供的方案,通过将待封装源代码信息根据开发者的需求设置外部接口,从而提高软件开发的灵活性,并在封装中将接口信息进行加密,从而保证通过接口进行数据传输的安全性。
本发明进一步提供一种软件开发工具包的开发装置。
参照图5,图5为本发明软件开发工具包的开发装置第一实施例的功能模块示意图。
本发明软件开发工具包的开发装置第一实施例中,该软件开发工具包的开发装置包括:
获取模块10,用于获取当前待开发软件开发工具包的项目需求,其中,所述当前待开发软件开发工具包用于调用网关应用程序编程接口。
需要说明的是,本实施例的执行主体为软件开发平台,还可为管理软件开发的服务器,本实施例对比不作限制,在进行软件开发工具包的开发工作之前,首先需要制定当前待开发调用网关应用程序接口的软件开发工具包的需求分析文档,通过所述需求分析文档可获取当前待开发工具包需要实现的功能等,例如调用的函数信息,配置的参数信息等。
可理解的是,所述软件开发工具包为SDK,即Software Development Kit,为辅助开发某一类软件的相关文档、范例和工具的集合,应用程序编程接口为API,即ApplicationProgramming Interface,是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令,从而实现前台与后台之间的数据通信。
在本实施例中,通过针对调用网关应用程序编程接口开发软件工具包,从而通过开发后的软件工具包实现对应用程序编程接口的调用,达到简化接口的调用,提高系统执行效率。
判断模块20,用于判断所述项目需求中是否存有通信信息,根据判断结果确定所述当前待开发软件开发工具包的类别信息。
需要说明的是,SDK按功能分类可以分为两大类,其中,一类是工具类SDK,例如安卓SDK以及Java语言的软件开发工具包(Java Development Kit,JDK)等属于工具类,一类是服务类SDK,例如讯飞SDK,腾讯SDK等等,如果按照通信方式进行分类,可分为跨进程通信类SDK和单一进程SDK,其中,跨进程通信类SDK需要在应用之间进行通信或者说是应用之间的一个纽带,例如调用微信的分享功能,或者手机的打电话,发短信,相机等等,都属于是跨进程通信,单一进程SDK或者说主线程SDK,该SDK大部分是工具类SDK,用来提供某些独立的功能,比如统一的网络管理,文件管理以及文本格式化等。
在具体实现中,通过判断所述项目需求中是否存有通信信息,例如接口访问,在存有接口访问时,则可确定所述当前待开发软件开发工具包的类别信息,从而保证项目开发的准确性。
创建模块30,用于根据所述类别信息创建所述当前待开发软件开发工具包的目标流程图。
需要说明的是,在基于软件开发平台进行软件开发时需要针对当前开发项目建立开发项目示例以及目标流程图,其中,所述待开发项目示例为开发平台上该事件的名称,从而与其他开发任务进行区分,所述目标通信流程图为待开发软件的通信方式,在一般情况下,包括跨进程通信类SDK,跨进程SDK主要流程是服务端通过统一的接口实现类来提供服务,接口实现类使用单例保证程序运行过程中的唯一性,客户端通过SDK提供的接口来调用任务中接口所提供的功能,通过预设机制来完成通信,需要提供错误回调机制,提交错误监听,可以有必要的工具类以及其他需要在客户端用到的类,还包括单一进程SDK,单一进程SDK主要是通过SDK来提供所需要的的功能,不需要服务端来进行配合,使用起来简单,按需来添加回调监听,也可以有必要的工具类以及其他需要在客户端用到的类。
编写模块40,用于接收框架编写指令,提取所述框架编写指令中的待开发软件工具包的历史框架结构,根据所述目标流程图对所述历史框架结构进行调整,将调整后的历史框架结构作为目标框架结构,并接收框架编辑指令,提取所述框架编辑指令中的接口信息以及预设类信息。
需要说明的是,所述框架结构为待开发软件工具包的目录结构,通过所述目录结构实现对各个参数的配置,例如下图所示的SDK的目录框架,其中,根据所述目录框架建立所述框架结构内创建接口信息以及预设类信息。
例如include目录下包括alink_export_gateway.h接口信息,用于SDK网关接口定义,alink_export_subdev.h,用于子设备接口定义,json_parser.h,用于json解析接口定义,供合作伙伴参考,自行选择使用,platform.h,用于平台相关接口定义,由合作伙伴实现,参考alink_platform.c目录,包括product.h目录,用于产品参数接口定义,由合作伙伴实现,参考product.c,包括lib目录和sample目录,其中lib目录包括libalink_agent.a,用于阿里提供的SDK库文件,sample目录,包括demo目录,其中demo目录包括alink_sample.c,从而实现对接口信息的定义。
在本实施例中,通过定义接口的规范,同时对每个接口设置相应的预设类信息,所述预设类信息规定每个接口的具体实现逻辑,保证具体的操作实现,所述预设类信息包括创建进程间通信服务器(Inter-ProcessCommunication,IPC),例如安卓使用Binder进行通信,aidl是通信接口类,IPC通信使用Parcelable进行数据传输。
在具体实现中,为了保证接口信息的安全性,实现客户端和服务器端之间的安全通讯,需要设计了全套的签名策略,只有携带通过复杂的签名算法的签名请求头的请求才会被网关转发给后端服务器,否则请求会被API网关拒绝,因此,在对接口信息进行配置之前,获取加密信息,根据所述加密信息对所述接口信息进行加密,从而保证数据传输的安全性。
封装模块50,用于将所述接口信息以及所述预设类信息进行封装生成所述目标软件开发工具包。
需要说明的是,在本实施例中,判断当前的通信方式,根据判断结果创建服务类信息,例如创建IPC通信服务类,android使用Binder进行通信,aidl是通信接口类,IPC通信使用Parcelable进行数据传输,从而实现软件开发工具包的通信功能。
在本实施例中,在生成所述目标软件开发工具包之后,还包括获取写入指令,提取所述写入指令中的操作说明,演示版本以及错误码说明,从而实现对软件开发工具包的使用。
本实施例通过上述方案,通过获取当前待开发软件开发工具包的项目需求,其中,所述当前待开发软件开发工具包用于调用网关应用程序编程接口;判断所述项目需求中是否存有通信信息,根据判断结果确定所述当前待开发软件开发工具包的类别信息;根据所述类别信息创建所述当前待开发软件开发工具包的目标流程图;接收框架编写指令,提取所述框架编写指令中的待开发软件工具包的历史框架结构,根据所述目标流程图对所述历史框架结构进行调整,将调整后的历史框架结构作为目标框架结构,并接收框架编辑指令,提取所述框架编辑指令中的接口信息以及预设类信息;将所述接口信息以及所述预设类信息进行封装生成所述目标软件开发工具包,从而将调用接口信息以及预设类信息进行封装生成目标软件开发工具包,只需调用目标软件开发工具包,即可实现对网关接口的调用,提高网关调用的便利性。
此外,为实现上述目的,本发明还提出一种软件开发工具包的开发设备,所述软件开发工具包的开发设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件开发工具包的开发程序,所述软件开发工具包的开发程序配置为实现如上文所述的软件开发工具包的开发方法的步骤。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有软件开发工具包的开发程序,所述软件开发工具包的开发程序被处理器执行如上文所述的软件开发工具包的开发方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台智能终端设备(可以是手机,计算机,终端设备,空调器,或者网络终端设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种软件开发工具包的开发方法,其特征在于,所述软件开发工具包的开发方法包括:
获取当前待开发软件开发工具包的项目需求,其中,所述当前待开发软件开发工具包用于调用网关应用程序编程接口;
判断所述项目需求中是否存有通信信息,根据判断结果确定所述当前待开发软件开发工具包的类别信息;
根据所述类别信息创建所述当前待开发软件开发工具包的目标流程图;
接收框架编写指令,提取所述框架编写指令中的待开发软件工具包的历史框架结构,根据所述目标流程图对所述历史框架结构进行调整,将调整后的历史框架结构作为目标框架结构,并接收框架编辑指令,提取所述框架编辑指令中的接口信息以及预设类信息;
将所述接口信息以及所述预设类信息进行封装生成目标软件开发工具包。
2.如权利要求1所述的软件开发工具包的开发方法,其特征在于,所述判断所述项目需求中是否存有通信信息,根据判断结果确定所述当前待开发软件开发工具包的类别信息,包括:
提取所述项目需求中的参考关键字信息,将所述通信信息作为目标关键字信息;
将所述参考关键字信息与所述目标关键字信息进行比较,根据比较结果判断所述项目需求中是否存有通信信息;
在所述项目需求中存有所述通信信息时,确定所述当前待开发软件开发工具包的类别为跨进程通信类;
在所述项目需求中未存有所述通信信息时,确定所述当前待开发软件开发工具包的类别为单一进程类。
3.如权利要求1所述的软件开发工具包的开发方法,其特征在于,所述根据所述类别信息创建所述当前待开发软件开发工具包的目标流程图,包括:
提取所述类别信息对应的目标标签信息;
根据所述目标标签信息在关系映射表中查找对应的参考流程图,并接收调整指令,根据所述调整指令对所述参考流程图进行更新,将更新后的参考流程图作为所述目标流程图。
4.如权利要求3所述的软件开发工具包的开发方法,其特征在于,所述根据所述目标标签信息在关系映射表中查找对应的参考流程图之前,所述方法还包括:
获取历史标签信息与历史流程图的对应关系,根据所述对应关系建立所述关系映射表。
5.如权利要求1至4中任一项所述的软件开发工具包的开发方法,其特征在于,所述将所述接口信息以及所述预设类信息进行封装生成目标软件开发工具包,包括:
接收源代码展示指令,根据所述源代码展示指令展示历史源代码信息,将所述接口信息以及所述预设类信息添加入所述历史源代码信息,生成原始源代码信息;
调用预设封装工具,通过所述预设封装工具提取所述原始源代码信息中的参数信息,将所述参数信息的属性设置为私有属性,对设置属性后的参数信息进行赋值,并将赋值后的参数信息进行封装生成目标软件开发工具包。
6.如权利要求5所述的软件开发工具包的开发方法,其特征在于,所述调用预设封装工具之前,所述方法还包括:
将所述原始源代码信息与预设参考源代码信息进行比较,判断所述原始源代码信息中是否含有预设参考源代码信息,将含有的预设参考源代码信息作为待封装源代码信息;
所述调用预设封装工具,通过所述预设封装工具提取所述原始源代码信息中的参数信息,将所述参数信息的属性设置为私有属性,对设置属性后的参数信息进行赋值,并将赋值后的参数信息进行封装生成目标软件开发工具包,包括:
调用预设封装工具,通过所述预设封装工具提取所述待封装源代码信息中的参数信息,将所述参数信息的属性设置为私有属性,对设置属性后的参数信息进行赋值,并将赋值后的参数信息进行封装;
提取所述待封装源代码信息中的接口信息,根据所述接口信息预留外部接口用于外部访问;
将对应的接口信息设置外部接口,将设置后的代码信息以及封装后的代码信息作为所述目标软件开发工具包。
7.如权利要求6所述的软件开发工具包的开发方法,其特征在于,所述将对应的接口信息设置外部接口,将设置后的代码信息以及封装后的代码信息作为所述目标软件开发工具包,包括:
获取所述待封装源代码信息对应的接口信息,根据预设公式得到待填充数据长度,根据所述待填充数据长度对所述接口信息进行数据填充,并将填充后的接口信息添加预设长度;
将添加后的接口信息以预设位为单位进行分组,并获取加密信息,以所述加密信息为起始变量对每个分组进行计算,得到预设个数的变量,再以所述变量进行计算,直至达到预设条件,得到目标接口信息,将所述目标接口信息作为加密后的接口信息;
对所述加密后的接口信息设置外部接口,将外部接口以及封装后的代码信息作为所述目标软件开发工具包。
8.一种软件开发工具包的开发装置,其特征在于,所述软件开发工具包的开发装置包括:
获取模块,用于获取当前待开发软件开发工具包的项目需求,其中,所述当前待开发软件开发工具包用于调用网关应用程序编程接口;
判断模块,用于判断所述项目需求中是否存有通信信息,根据判断结果确定所述当前待开发软件开发工具包的类别信息;
创建模块,用于根据所述类别信息创建所述当前待开发软件开发工具包的目标流程图;
编写模块,用于接收框架编写指令,提取所述框架编写指令中的待开发软件工具包的历史框架结构,根据所述目标流程图对所述历史框架结构进行调整,将调整后的历史框架结构作为目标框架结构,并接收框架编辑指令,提取所述框架编辑指令中的接口信息以及预设类信息;
封装模块,用于将所述接口信息以及所述预设类信息进行封装生成目标软件开发工具包。
9.一种软件开发工具包的开发设备,其特征在于,所述软件开发工具包的开发设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件开发工具包的开发程序,所述软件开发工具包的开发程序配置为实现如权利要求1至7中任一项所述的软件开发工具包的开发方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有软件开发工具包的开发程序,所述软件开发工具包的开发程序被处理器执行时实现如权利要求1至7中任一项所述的软件开发工具包的开发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910433180.5A CN110286939A (zh) | 2019-05-21 | 2019-05-21 | 软件开发工具包的开发方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910433180.5A CN110286939A (zh) | 2019-05-21 | 2019-05-21 | 软件开发工具包的开发方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110286939A true CN110286939A (zh) | 2019-09-27 |
Family
ID=68002481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910433180.5A Pending CN110286939A (zh) | 2019-05-21 | 2019-05-21 | 软件开发工具包的开发方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110286939A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727716A (zh) * | 2019-10-24 | 2020-01-24 | 北京智游网安科技有限公司 | 一种应用中集成sdk的识别方法、智能终端及存储介质 |
CN110750246A (zh) * | 2019-10-21 | 2020-02-04 | 广州趣丸网络科技有限公司 | 多流程系统的生成方法及相关装置 |
CN110865844A (zh) * | 2019-11-28 | 2020-03-06 | 安徽江淮汽车集团股份有限公司 | 基于车联网平台的应用配置系统及方法 |
CN112306475A (zh) * | 2020-11-02 | 2021-02-02 | 平安普惠企业管理有限公司 | 通用接口的配置方法、装置、设备及存储介质 |
CN112463200A (zh) * | 2020-12-10 | 2021-03-09 | 微医云(杭州)控股有限公司 | 开发工具包处理方法、装置、电子设备以及存储介质 |
CN113778394A (zh) * | 2021-08-18 | 2021-12-10 | 北京城市网邻信息技术有限公司 | Sdk适配方法、装置、电子设备及存储介质 |
CN117149073A (zh) * | 2023-08-30 | 2023-12-01 | 中科驭数(北京)科技有限公司 | 存储方案的配置方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050091672A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Facilitating presentation functionality through a programming interface media namespace |
US20080127040A1 (en) * | 2006-08-31 | 2008-05-29 | Jon Barcellona | Enterprise-Scale Application Development Framework Utilizing Code Generation |
US20180173502A1 (en) * | 2016-12-21 | 2018-06-21 | Aon Global Operations Ltd (Singapore Branch) | Methods, Systems, and Portal Using Software Containers for Accelerating Aspects of Data Analytics Application Development and Deployment |
CN109669688A (zh) * | 2018-09-26 | 2019-04-23 | 深圳壹账通智能科技有限公司 | 基于可视化的软件开发方法、装置、终端设备及存储介质 |
-
2019
- 2019-05-21 CN CN201910433180.5A patent/CN110286939A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050091672A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Facilitating presentation functionality through a programming interface media namespace |
US20080127040A1 (en) * | 2006-08-31 | 2008-05-29 | Jon Barcellona | Enterprise-Scale Application Development Framework Utilizing Code Generation |
US20180173502A1 (en) * | 2016-12-21 | 2018-06-21 | Aon Global Operations Ltd (Singapore Branch) | Methods, Systems, and Portal Using Software Containers for Accelerating Aspects of Data Analytics Application Development and Deployment |
CN109669688A (zh) * | 2018-09-26 | 2019-04-23 | 深圳壹账通智能科技有限公司 | 基于可视化的软件开发方法、装置、终端设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
姜振宇;全勇;汪光明;邵??;: "基于插件平台的软件开发过程研究", 微型机与应用, no. 1 * |
邱旭华;: "开源自动化控制软件Sedona在物联网中的应用", 单片机与嵌入式系统应用, no. 12 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750246A (zh) * | 2019-10-21 | 2020-02-04 | 广州趣丸网络科技有限公司 | 多流程系统的生成方法及相关装置 |
CN110750246B (zh) * | 2019-10-21 | 2023-08-29 | 广州趣丸网络科技有限公司 | 多流程系统的生成方法及相关装置 |
CN110727716A (zh) * | 2019-10-24 | 2020-01-24 | 北京智游网安科技有限公司 | 一种应用中集成sdk的识别方法、智能终端及存储介质 |
CN110727716B (zh) * | 2019-10-24 | 2022-04-22 | 北京智游网安科技有限公司 | 一种应用中集成sdk的识别方法、智能终端及存储介质 |
CN110865844A (zh) * | 2019-11-28 | 2020-03-06 | 安徽江淮汽车集团股份有限公司 | 基于车联网平台的应用配置系统及方法 |
CN110865844B (zh) * | 2019-11-28 | 2021-09-28 | 安徽江淮汽车集团股份有限公司 | 基于车联网平台的应用配置系统及方法 |
CN112306475A (zh) * | 2020-11-02 | 2021-02-02 | 平安普惠企业管理有限公司 | 通用接口的配置方法、装置、设备及存储介质 |
CN112463200A (zh) * | 2020-12-10 | 2021-03-09 | 微医云(杭州)控股有限公司 | 开发工具包处理方法、装置、电子设备以及存储介质 |
CN113778394A (zh) * | 2021-08-18 | 2021-12-10 | 北京城市网邻信息技术有限公司 | Sdk适配方法、装置、电子设备及存储介质 |
CN117149073A (zh) * | 2023-08-30 | 2023-12-01 | 中科驭数(北京)科技有限公司 | 存储方案的配置方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110286939A (zh) | 软件开发工具包的开发方法、装置、设备及存储介质 | |
US20210333984A1 (en) | Method and apparatus for generating customized visualization component | |
KR101008050B1 (ko) | 서비스를 생성, 수행 및 매핑하는 시스템 및 방법 | |
CN110381135A (zh) | 接口创建方法、服务请求方法、装置、计算机设备和介质 | |
CN109460279A (zh) | 基于小程序的表单页面开发方法、装置、设备及存储介质 | |
US20030078949A1 (en) | Automatic generation of forms with input validation | |
EP2437524A1 (en) | M2m service platform and work method thereof | |
CN111683066B (zh) | 异构系统集成方法、装置、计算机设备和存储介质 | |
WO2018210096A1 (zh) | 一种基于规则引擎的规则配置方法、终端、设备以及存储介质 | |
CN110069297A (zh) | 基于Spring MVC的异常处理方法、装置、计算机设备和存储介质 | |
CN109558202A (zh) | 基于小程序的列表页面开发方法、装置、设备及存储介质 | |
CN111831191A (zh) | 工作流配置方法、装置、计算机设备和存储介质 | |
CN105765533A (zh) | 用于固件虚拟化的方法和装置 | |
WO2022095518A1 (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
CN109286517B (zh) | 创建服务的方法、装置和存储介质以及电子设备 | |
JP3887672B2 (ja) | プロトコル・スタック生成装置及び方法 | |
CN109814863A (zh) | 一种请求返回数据的处理方法、装置、计算机设备及计算机存储介质 | |
CN111144878B (zh) | 指令生成方法与指令生成装置 | |
CN110278272B (zh) | 模拟Socket请求的通用方法 | |
CN103677842A (zh) | 软件工具配置式集成扩展调用方法与系统 | |
CN110275701A (zh) | 数据处理方法、装置、介质和计算设备 | |
CN111857782B (zh) | 界面更新方法、装置、计算机设备和存储介质 | |
CN114519582A (zh) | 服务的预热方法、预热装置和服务系统 | |
CN113626001A (zh) | 一种基于脚本的api动态编排方法及装置 | |
CN113806652A (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 |