CN109710340A - 软件工具调用方法及装置、软件工具封装方法及装置 - Google Patents
软件工具调用方法及装置、软件工具封装方法及装置 Download PDFInfo
- Publication number
- CN109710340A CN109710340A CN201910049678.1A CN201910049678A CN109710340A CN 109710340 A CN109710340 A CN 109710340A CN 201910049678 A CN201910049678 A CN 201910049678A CN 109710340 A CN109710340 A CN 109710340A
- Authority
- CN
- China
- Prior art keywords
- software tool
- target
- functional module
- title
- function
- 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.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种软件工具调用方法及装置、软件工具封装方法及装置,涉及计算机软件技术领域,本申请的软件工具调用方法包括:基于用户调用请求,确定需要调用的目标软件工具以及与目标软件工具通信的目标接口;其中,目标接口由与用户调用请求对应的功能模块提供;功能模块按照预定规则、基于与用户调用请求对应的多个函数进行封装得到;其中,用户调用请求携带有功能模块的名称;利用获取的目标接口,功能模块从目标软件工具中调用与目标接口对应的函数。本申请提供了一种软件工具调用方法及装置、软件工具封装方法及装置,降低软件开发和学习成本,提高软件工具的切换效率,提升软件工具使用的便捷度。
Description
技术领域
本申请涉及计算机软件技术领域,尤其是涉及一种软件工具调用方法及装置、软件工具封装方法及装置。
背景技术
在移动设备应用软件开发时,需要使用第三方提供的软件工具实现相应的功能,然而,不同的第三方提供的软件工具调用方法不同,使用的数据结构也不同。实际应用时,由于不同的第三方提供的软件工具功能侧重不同,在第三方提供的软件工具进行切换在所难免。
现有技术中,如果使用不同第三方提供的软件工具实现相应的功能,需要在不同第三方提供的软件工具中进行切换,开发成本和学习成本很高,并且需要将所有第三方提供的软件工具都集成在手机软件中,造成软件的安装包过大,开发的软件使用不便。
发明内容
有鉴于此,本申请的目的在于提供一种软件工具调用方法及装置、软件工具封装方法及装置,降低软件开发和学习成本,提高软件工具的切换效率,提升软件工具使用的便捷度。
第一方面,本申请实施例提供了一种软件工具调用方法,包括:
基于用户调用请求,确定需要调用的目标软件工具以及与所述目标软件工具通信的目标接口;其中,所述目标接口由与所述用户调用请求对应的功能模块提供;所述功能模块按照预定规则、基于与所述用户调用请求对应的多个函数进行封装得到;其中,所述用户调用请求携带有所述功能模块的名称;
利用获取的所述目标接口,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数。
一种可能的实施方式中,所述利用获取的所述目标接口,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数,包括:
基于确定的所述目标软件工具的名称和所述目标接口对应的函数的名称,生成调用命令;
利用调用命令,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数。
一种可能的实施方式中,所述利用调用命令,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数,包括:
基于所述调用命令对应的目标软件工具的名称,加载所述需要调用的软件工具对应的动态链接库;
从加载的所述动态链接库中调用与目标接口对应的函数的名称匹配的函数。
一种可能的实施方式中,所述利用调用命令,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数之前,还包括:
判断所述目标软件工具是否存在;
如果不存在,提示出现错误。
一种可能的实施方式中,所述利用调用命令,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数之后,还包括:
获取所述目标接口对应的函数的返回数据,将获取的返回数据转换为预设的数据格式。
第二方面,本申请实施例还提供一种软件工具封装方法,包括:
获取与用户调用请求对应的软件工具的名称和多个函数的函数名称;
按照预设规则,基于获取的多个函数的名称和软件工具的名称进行封装处理,得到功能模块;其中,所述功能模块提供与所述软件工具通信的接口。
一种可能的实施方式中,所述功能模块的名称包括:
所述软件工具的名称和用户调用请求对应的功能的名称。
第三方面,本申请实施例还提供一种软件工具调用装置,包括:
确定模块,用于基于用户调用请求,确定需要调用的目标软件工具以及与所述目标软件工具通信的目标接口;其中,所述目标接口由与所述用户调用请求对应的功能模块提供;其中,所述用户调用请求携带有所述功能模块的名称;
功能模块,用于利用获取的所述目标接口,从所述目标软件工具中调用与所述目标接口对应的函数,其中,所述功能模块按照预定规则、基于与所述用户调用请求对应的多个函数进行封装得到。
一种可能的设计中,所述功能模块还用于,
基于确定的所述目标软件工具的名称和所述目标接口对应的函数的名称,生成调用命令;
利用调用命令,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数。
一种可能的设计中,所述功能模块还用于,
基于所述调用命令对应的目标软件工具的名称,加载所述需要调用的软件工具对应的动态链接库;
从加载的所述动态链接库中调用与目标接口对应的函数的名称匹配的函数。
一种可能的设计中,所述功能模块还用于,
判断所述目标软件工具是否存在;
如果不存在,提示出现错误。
一种可能的设计中,所述功能模块还用于,
获取所述目标接口对应的函数的返回数据,将获取的返回数据转换为预设的数据格式。
第四方面,本申请实施例还提供一种软件工具封装装置,包括:
获取模块,用于获取与用户调用请求对应的软件工具的名称和多个函数的函数名称;
封装模块,用于按照预设规则,基于获取的多个函数的名称和软件工具的名称进行封装处理,得到功能模块;其中,所述功能模块提供与所述软件工具通信的接口。
一种可能的设计中,所述封装模块还用于生成功能模块的名称,所述功能模块的名称包括:
所述软件工具的名称和用户调用请求对应的功能的名称。
第五方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,第一方面中任一种可能的实施方式,第二方面或第二方面中任一种可能的实施方式中的步骤。
第六方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,第一方面中任一种可能的实施方式,第二方面或第二方面中任一种可能的实施方式中的步骤。
本申请实施例提供的一种软件工具调用方法及装置、软件工具封装方法及装置,将用户需要的至少一个软件工具按照预设规则,基于软件工具和软件工具中的函数进行封装处理,得到多个功能模块,所述功能模块提供与所述软件工具通信的接口。基于用户调用请求,确定需要调用的目标软件工具以及与所述目标软件工具通信的目标接口,并且利用获取的所述目标接口,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数。经过对软件工具和软件工程具中的函数进行封装,用户无需了解每个软件工具的函数的实现方式,即可对用户需要的软件工具及软件工具中的函数进行调用,降低了软件开发和学习成本,提高了软件工具的切换效率,提升了软件工具使用的便捷度。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种软件工具调用方法的流程图;
图2示出了本申请实施例所提供的一种软件工具封装方法的流程图;
图3示出了本申请实施例所提供的一种软件工具封装和调用方法,具体应用于地图服务时的框架图;
图4示出了本申请实施例所提供的一种软件工具封装和调用方法,具体应用于地图服务时的流程图图;
图5示出了本申请实施例所提供的一种软件工具调用装置的的结构示意图;
图6示出了本申请实施例所提供的一种软件工具封装装置的的结构示意图;
图7示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前在移动设备应用软件(Application,APP)中集成第三方软件工具已经十分普遍,例如,在APP中集成基于位置的服务(Location Based Service,LBS)等。以在移动设备应用软件中集成LBS为例,大多数APP都会通过集成第三方提供的地图服务来更好地展现集成LBS的成果。例如,电商类APP通常会通过地图来展示商品的快递状态,出行类APP会在地图上展示用户自己的位置以及用户附近可用的相关资源,配送类APP,如顺丰骑士等骑手配送工具,需要实时展示订单的取送位置,并给出相应的路线规划,因此更离不开地图的支持。这些APP通常退选用第三方提供的地图服务集成到自己的APP中,实现上述用户需要的功能。常见的第三方地图服务有百度、高德、腾讯、谷歌等,无论APP中集成哪种第三方地图,均需要通过该第三方地图提供的开放应用程序编程接口(Application ProgrammingInterface,API)调用该第三方地图中的函数,以实现对应的功能。
现有技术中,APP集成第三方提供的软件工具时,通常通过第三方软件工具的软件开发工具包(Software Development Kit,SDK)来集成第三方软件工具,每种第三方软件工具的SDK都会提供相应的API接口,以方便APP调用该第三方软件工具。然而,经调研发现,由于每种第三方软件工具的SDK提供的API接口定义和调用方式不同,目前几乎所有的APP都是只集成一种第三方软件工具。
但是只集成一种第三方软件工具,存在如下问题:
(1)应用第三方软件工具时,有可能由于第三方软件工具的错误,导致出现APP整体崩溃的情况。现有技术中集成单一种类的第三方软件工具无法做到在不同的第三方软件工具中进行动态切换,一旦集成的第三方软件工具的服务出现问题,只能通过发版解决,无法保证APP服务的稳定性。
(2)每个第三方软件工具提供的服务质量不同。因此,在一些可能的实施方式中,需要只切换第三方软件工具中的某个功能的服务,例如APP中集成LBS时,路线规划使用百度地图,而逆地址编码则使用高德地图。
(3)由于每种第三方软件工具的开发商不一样,所以每种第三方软件工具提供的API接口和第三方软件工具提供的函数调用方式也不尽相同,甚至是大相径庭,一旦需要切换第三方软件工具,就需要学习新的第三方软件工具提供的API接口及其第三方软件工具提供的函数调用方式,并且需要修改大量的APP业务层代码,带来了大量的时间成本和开发成本,降低了开发效率。
(4)如果简单的将多种第三方软件工具的SDK全部集成在APP中,会造成APP的安装包变大,给用户安装带来困扰。并且普通的集成方案在代码架构上存在相互依赖的问题,将多种第三方软件工具的SDK全部集成在APP中时,会在移除任一种第三方软件工具的SDK后造成代码编译错误,APP无法运行。
基于此,本申请实施例提供了一种软件工具调用方法及装置、软件工具封装方法及装置,对按照预定的规则,对第三方软件工具提供的多个函数进行封装,得到多个功能模块,每个功能模块提供至少一个接口与第三方软件工具提供的函数通信。使用户无需学习第三方软件工具提供的API接口及第三方软件工具提供的函数的调用方式,即可对不同的第三方软件工具提供的函数进行调用。并且,在不同第三方软件工具之间进行切换时,也无需学习新的第三方软件公安局提供的API接口及第三方软件工具提供的函数的调用方式。在APP中,可以只集成需要的第三方软件工具的SDK,即使移除了不需要的第三方软件工具的SDK,也不会出现由于编译错误,从而无法运行APP的问题。
因此,本申请实施例提供的一种软件工具调用方法及装置、软件工具封装方法及装置,降低了软件开发和学习成本,提高了软件工具的切换效率,提升了软件工具使用的便捷度。
基于用户调用请求,确定需要调用的目标软件工具以及与所述目标软件工具通信的目标接口;其中,所述目标接口由与所述用户调用请求对应的功能模块提供;所述功能模块按照预定规则、基于与所述用户调用请求对应的多个函数进行封装得到;其中,所述用户调用请求携带有所述功能模块的名称;
利用获取的所述目标接口,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种软件工具调用方法进行详细介绍。
实施例一
如图1所示是本申请实施例提供的一种软件工具调用方法,包括:
S101:基于用户调用请求,确定需要调用的目标软件工具以及与所述目标软件工具通信的目标接口;其中,所述目标接口由与所述用户调用请求对应的功能模块提供;所述功能模块按照预定规则、基于与所述用户调用请求对应的多个函数进行封装得到;其中,所述用户调用请求携带有所述功能模块的名称。
这里,在APP对目标软件工具进行调用时,需要基于用户调用请求,调用封装好的功能模块提供的目标接口。功能模块确定目标软件工具的名称和用户调用请求对应的函数的名称,基于确定的所述目标软件工具的名称和所述目标接口对应的函数的名称,生成调用命令;利用调用命令,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数。
当切换到新的第三方软件工具时,即对新的目标软件工具进行调用时,用户调用请求需要携带新的功能模块的名称,通过新的功能模块,确定新的目标软件工具的名称和用户调用请求对应的函数的名称,基于新的所述目标软件工具的名称和所述目标接口对应的函数的名称,生成新的调用命令;利用新的调用命令,新的功能模块从新的目标软件工具中调用与所述目标接口对应的函数。
为了避免功能模块和集成的第三方软件工具在代码架构上存在相互依赖的问题,从而避免在移除某种第三方软件工具的SDK后,由于代码编译错误造成APP无法运行的情况,需要实现代码依赖的解耦。
具体地,实现代码依赖的解耦为,利用第三方软件工具的名称和函数名称,采用反射调用的方式对第三方软件工具提供的函数进行调用。这里,利用调用命令,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数,包括:
基于所述调用命令对应的目标软件工具的名称,加载所述需要调用的软件工具对应的动态链接库;从加载的所述动态链接库中调用与目标接口对应的函数的名称匹配的函数。
另外,功能模块从所述目标软件工具中调用与所述目标接口对应的函数之前,还包括:
判断所述目标软件工具是否存在;如果不存在,提示出现错误。
由于基于与所述用户调用请求对应的多个函数进行了封装,在目标软件工具不存在时,例如在目标软件工具的SDK没有包含在APP的安装包中时,APP可以提示出现错误,而不会出现程序崩溃。
例如,在APP中集成LBS时,在APP要集成某个第三方地图的功能,比如百度地图,就需要包含百度地图的SDK,而对于不需要的第三方地图,比如高德地图,就可以不包含高德地图的SDK。如果要切换地图,就可以将百度地图的SDK移除,加入高德地图的SDK,因为只是底层SDK变了,而上层的API并没有变,所以可以快速切换第三方地图,无需更改上层APP的代码,实现了代码依赖的解耦。
这里,在所述利用调用命令,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数之后,还包括:
获取所述目标接口对应的函数的返回数据,将获取的返回数据转换为预设的数据格式。
S102:利用获取的所述目标接口,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数。
本申请实施例一提供的一种软件工具调用方法,降低了软件开发和学习成本,提高了软件工具的切换效率,提升了软件工具使用的便捷度。
实施例二
如图2所示是本申请实施例提供的一种软件工具封装方法,包括:
S201:获取与用户调用请求对应的软件工具的名称和多个函数的函数名称。
在进行软件工具封装得到功能模块之前,需要定义接口协议,通过定义的接口协议,功能模块提供与所述软件工具通信的接口。
通过接口协议,定义了每个功能模块的名称、每个功能模块提供与所述软件工具通信的接口的数量、每个功能模块提供与所述软件工具通信的接口的名称、传递数据的数据结构和返回数据的数据结构。接口协议的具体定义方法由使用的编程语言和功能需求决定。接口协议定义后,所有的封装得到的功能模块,均需要使用上述接口协议。
由于接口协议定义了传递数据的数据结构和返回数据的数据结构,在向第三方软件工具传递数据时,需要使用预设的数据格式;或者在接收第三方工具的返回数据时,就要将获取的返回数据转换为预设的数据格式。
上述功能模块的名称包括:上述软件工具的名称和用户调用请求对应的功能的名称。
上述第三方软件工具的名称可以基于第三方软件工具的供应商的名称确定,例如,在APP中集成LBS时,基于地图供应商的名称,确定地图工具的名称。具体地,在集成百度地图时,功能模块的名称可以包括:Baidu;在集成高德地图时,功能模块的名称可以包括:Gaode。
进一步,功能模块的名称包括用户调用请求对应的功能的名称,例如,在APP中集成LBS时,路线规划功能对应的功能模块的名称可以包括:RoutePlanService。
总之,在APP中集成LBS时,用户调用请求为路线规划功能对应的功能模块,针对百度地图进行封装时,其功能模块的名称包括软件工具的名称和用户调用请求对应的功能的名称,为BaiduRoutePlanService,针对高德地图进行封装时,其功能模块的名称可以是GaodeRoutePlanService。
并且在基于用户调用请求,确定需要调用的目标软件工具以及与所述目标软件工具通信的目标接口时,基于用于调用请求携带的功能模块的名称,可以确定软件工具的名称和用户调用请求对应的功能的名称,通过用户调用请求对应的功能的名称,确定上述功能模块提供的与所述目标软件工具通信的目标接口,利用获取的所述目标接口,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数。
S202:按照预设规则,基于获取的多个函数的名称和软件工具的名称进行封装处理,得到功能模块;其中,所述功能模块提供与所述软件工具通信的接口。
按照上述接口协议,基于获取的多个函数的名称和软件工具的名称对第三方软件工具进行封装处理,得到功能模块。每个功能模块中还可以定义私有函数,进行内部计算和数据处理,不对外调用,只供功能模块的内部调用。
具体地,以功能为划分标准,在功能模块中定义与所述软件工具通信的接口,与所述软件工具通信的接口为实现用户调用需求的函数对应的接口,并且所述软件工具通信的接口的名称需要统一定义。例如,在APP中集成LBS时,用户调用请求为开始路线规划函数对应的功能模块,每个功能模块需要提供实现用户调用需求的函数对应的接口。实现用户调用需求的函数对应的接口的名称需要统一定义,例如,针对百度地图进行封装时,其功能模块中实现的开始路线规划函数的名称为startRoutePlan,针对高德地图进行封装时,其功能模块中实现的开始路线规划函数的名称也要是startRoutePlan。
本申请实施例二提供的一种软件工具封装方法,降低了软件开发和学习成本,提高了软件工具的切换效率,提升了软件工具使用的便捷度。
实施例三
如图3所示是本申请实施例提供的一种软件工具封装和调用方法,应用于在APP中集成LBS时的架构图,包括:第三方库层,基础层(Base层)和业务层。
其中,第三方库层包括了对每个第三方地图工具SDK的二次封装,得到多个功能模块,每个功能模块中实现预先定义的接口协议。
在Base层中,每个功能模块提供至少一个符合预先定义的接口协议的API接口。并基于每个功能模块构建工厂类,为APP提供可调用的API接口。
业务层为不同的APP,不同的APP通过调用工厂类提供的API接口,用户调用请求对应的第三方地图工具中,对应用户调用请求的功能的函数进行调用。
具体地,如图4所示是本申请实施例提供的一种软件工具封装方法,应用于在APP中集成LBS时的方法流程图,具体步骤如下:
S401:调研业务请求,定义接口协议。
S402:根据接口协议对第三方地图工具进行二次封装,构建多个功能模块。
这里,进行二次封装时,所有构建的功能模块都需要遵守步骤S401中定义的接口协议,并且所有的功能模块的名称需要符合接口协议中的定义。
S403:基于每个功能模块构建工厂类,提供对外调用的API接口。
这里,构建的工厂类也需要遵守步骤S401中定义的接口协议,提供的API接口也包括接口协议中的定义的接口。为了提供更丰富的功能,工厂类提供的API接口也可以增加接口协议中不包括的接口。
S404:业务层APP调用S403构建的工厂类提供的API,调用对应的第三方地图工具。
S405:S403构建的工厂类根据业务层APP发送来的用户调用请求,确定用户调用请求对应的第三方地图工具,和第三方地图工具中实现用户调用请求对应的功能的函数,对第三方地图工具中实现用户调用请求对应的功能的函数进行调用。
本申请实施例三提供的一种软件工具封装和调用方法,降低了软件开发和学习成本,提高了软件工具的切换效率,提升了软件工具使用的便捷度。
基于相同的技术构思,本申请实施例还提供一种软件工具调用装置、软件工具封装装置、电子设备、以及计算机存储介质等,具体可参见以下实施例。
实施例四
如图5所示,本申请实施例还提供一种软件工具调用装置500,包括:
确定模块501,用于基于用户调用请求,确定需要调用的目标软件工具以及与所述目标软件工具通信的目标接口;其中,所述目标接口由与所述用户调用请求对应的功能模块提供;其中,所述用户调用请求携带有所述功能模块的名称;
功能模块502,用于利用获取的所述目标接口,从所述目标软件工具中调用与所述目标接口对应的函数,其中,所述功能模块按照预定规则、基于与所述用户调用请求对应的多个函数进行封装得到。
一种可能的设计中,所述功能模块502还用于,
基于确定的所述目标软件工具的名称和所述目标接口对应的函数的名称,生成调用命令;
利用调用命令,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数。
一种可能的设计中,所述功能模块502还用于,
基于所述调用命令对应的目标软件工具的名称,加载所述需要调用的软件工具对应的动态链接库;
从加载的所述动态链接库中调用与目标接口对应的函数的名称匹配的函数。
一种可能的设计中,所述功能模块502还用于,
判断所述目标软件工具是否存在;
如果不存在,提示出现错误。
一种可能的设计中,所述功能模块502还用于,
获取所述目标接口对应的函数的返回数据,将获取的返回数据转换为预设的数据格式。
实施例五
如图6所示,本申请实施例还提供一种软件工具封装装置600,包括:
获取模块601,用于获取与用户调用请求对应的软件工具的名称和多个函数的函数名称;
封装模块602,用于按照预设规则,基于获取的多个函数的名称和软件工具的名称进行封装处理,得到功能模块;其中,所述功能模块提供与所述软件工具通信的接口。
一种可能的设计中,所述封装模块602还用于生成功能模块的名称,所述功能模块的名称包括:
所述软件工具的名称和用户调用请求对应的功能的名称。
实施例六
图7示出了本申请实施例所提供的一种电子设备700,包括处理器701,存储器702,总线703,所述处理器701和存储器702通过总线703连接;处理器701用于执行存储器702中存储的可执行模块,例如计算机程序。
其中,存储器702可能包含高速随机存取存储器(Random Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
总线703可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩充工业标准总结结构(Extended Industry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器702用于存储程序,所述处理器701在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器701中,或者由处理器701实现。
处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成上述软件工具封装方法或软件工具调用方法的步骤。
本发明实施例提供的一种软件工具调用装置、软件工具封装装置及电子设备,与上述实施例提供的一种软件工具封装方法、软件工具调用方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
实施例七
本实施例公开了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述实施例的软件工具封装方法中的步骤,或执行上述实施例的软件工具调用方法中的步骤。
本申请实施例所提供的进行执行上述实施例的软件工具封装方法中的步骤,或执行上述实施例的软件工具调用方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (11)
1.一种软件工具调用方法,其特征在于,包括:
基于用户调用请求,确定需要调用的目标软件工具以及与所述目标软件工具通信的目标接口;其中,所述目标接口由与所述用户调用请求对应的功能模块提供;所述功能模块按照预定规则、基于与所述用户调用请求对应的多个函数进行封装得到;其中,所述用户调用请求携带有所述功能模块的名称;
利用获取的所述目标接口,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数。
2.根据权利要求1所述的方法,其特征在于,所述利用获取的所述目标接口,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数,包括:
基于确定的所述目标软件工具的名称和所述目标接口对应的函数的名称,生成调用命令;
利用调用命令,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数。
3.根据权利要求2所述的方法,其特征在于,所述利用调用命令,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数,包括:
基于所述调用命令对应的目标软件工具的名称,加载所述需要调用的软件工具对应的动态链接库;
从加载的所述动态链接库中调用与目标接口对应的函数的名称匹配的函数。
4.根据权利要求3所述的方法,其特征在于,所述利用调用命令,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数之前,还包括:
判断所述目标软件工具是否存在;
如果不存在,提示出现错误。
5.根据权利要求2所述的方法,其特征在于,所述利用调用命令,所述功能模块从所述目标软件工具中调用与所述目标接口对应的函数之后,还包括:
获取所述目标接口对应的函数的返回数据,将获取的返回数据转换为预设的数据格式。
6.一种软件工具封装方法,其特征在于,包括:
获取与用户调用请求对应的软件工具的名称和多个函数的函数名称;
按照预设规则,基于获取的多个函数的名称和软件工具的名称进行封装处理,得到功能模块;其中,所述功能模块提供与所述软件工具通信的接口。
7.根据权利要求6所述的方法,其特征在于,所述功能模块的名称包括:
所述软件工具的名称和用户调用请求对应的功能的名称。
8.一种软件工具调用装置,其特征在于,包括:
确定模块,用于基于用户调用请求,确定需要调用的目标软件工具以及与所述目标软件工具通信的目标接口;其中,所述目标接口由与所述用户调用请求对应的功能模块提供;其中,所述用户调用请求携带有所述功能模块的名称;
功能模块,用于利用获取的所述目标接口,从所述目标软件工具中调用与所述目标接口对应的函数,其中,所述功能模块按照预定规则、基于与所述用户调用请求对应的多个函数进行封装得到。
9.一种软件工具封装装置,其特征在于,包括:
获取模块,用于获取与用户调用请求对应的软件工具的名称和多个函数的函数名称;
封装模块,用于按照预设规则,基于获取的多个函数的名称和软件工具的名称进行封装处理,得到功能模块;其中,所述功能模块提供与所述软件工具通信的接口。
10.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至5任一所述的软件工具调用方法或如权利要求6至7任一所述的软件工具封装方法的步骤。
11.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至5任一所述的软件工具调用方法或如权利要求6至7任一所述的软件工具封装方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910049678.1A CN109710340B (zh) | 2019-01-18 | 2019-01-18 | 软件工具调用方法及装置、软件工具封装方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910049678.1A CN109710340B (zh) | 2019-01-18 | 2019-01-18 | 软件工具调用方法及装置、软件工具封装方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109710340A true CN109710340A (zh) | 2019-05-03 |
CN109710340B CN109710340B (zh) | 2022-03-25 |
Family
ID=66262350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910049678.1A Active CN109710340B (zh) | 2019-01-18 | 2019-01-18 | 软件工具调用方法及装置、软件工具封装方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710340B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275701A (zh) * | 2019-06-19 | 2019-09-24 | 网易传媒科技(北京)有限公司 | 数据处理方法、装置、介质和计算设备 |
CN110347445A (zh) * | 2019-07-12 | 2019-10-18 | 财付通支付科技有限公司 | Sdk调用方法、装置、服务器及存储介质 |
CN110362364A (zh) * | 2019-07-23 | 2019-10-22 | 深圳市元征科技股份有限公司 | 软件开发工具包功能调用方法、系统及电子设备和介质 |
CN110389756A (zh) * | 2019-07-23 | 2019-10-29 | 深圳市元征科技股份有限公司 | 软件开发工具包功能调用方法、系统及电子设备和介质 |
CN110389753A (zh) * | 2019-06-06 | 2019-10-29 | 五八有限公司 | 原生应用的链式调用方法、装置、电子设备及存储介质 |
CN110399181A (zh) * | 2019-07-23 | 2019-11-01 | 深圳市元征科技股份有限公司 | 软件开发工具包功能调用方法、系统及电子设备和介质 |
CN110597492A (zh) * | 2019-08-07 | 2019-12-20 | 深圳市元征科技股份有限公司 | 一种调用模块的方法和相关产品 |
CN110992607A (zh) * | 2019-11-22 | 2020-04-10 | 福建新大陆支付技术有限公司 | 一种通过接口协议方式接入终端的方法 |
CN111506601A (zh) * | 2020-03-31 | 2020-08-07 | 新华三大数据技术有限公司 | 一种数据处理方法及装置 |
CN112099772A (zh) * | 2020-08-21 | 2020-12-18 | 深圳市元征科技股份有限公司 | 通信接口封装方法、装置、设备及存储介质 |
CN112799744A (zh) * | 2021-01-29 | 2021-05-14 | 北京索为系统技术股份有限公司 | 工业app的调用方法、装置、计算机可读介质及电子设备 |
CN116431107A (zh) * | 2023-03-14 | 2023-07-14 | 芜湖市桀蒲网络科技有限公司 | 一种基于大数据的软件模块划分方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653363A (zh) * | 2015-12-28 | 2016-06-08 | 北京致远协创软件有限公司 | 一种接口功能实现方法及装置 |
CN107329742A (zh) * | 2017-06-14 | 2017-11-07 | 北京小米移动软件有限公司 | 软件开发工具包调用方法及装置 |
CN107729063A (zh) * | 2017-10-25 | 2018-02-23 | 武汉斗鱼网络科技有限公司 | 软件开发工具包的调用方法、装置及终端 |
US20180157627A1 (en) * | 2016-12-06 | 2018-06-07 | Bank Of America Corporation | Tool for providing actionable functionality on a website |
CN108228169A (zh) * | 2017-12-08 | 2018-06-29 | 平安科技(深圳)有限公司 | 基于eCharts工具的图表制作方法、装置、设备及介质 |
-
2019
- 2019-01-18 CN CN201910049678.1A patent/CN109710340B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653363A (zh) * | 2015-12-28 | 2016-06-08 | 北京致远协创软件有限公司 | 一种接口功能实现方法及装置 |
US20180157627A1 (en) * | 2016-12-06 | 2018-06-07 | Bank Of America Corporation | Tool for providing actionable functionality on a website |
CN107329742A (zh) * | 2017-06-14 | 2017-11-07 | 北京小米移动软件有限公司 | 软件开发工具包调用方法及装置 |
CN107729063A (zh) * | 2017-10-25 | 2018-02-23 | 武汉斗鱼网络科技有限公司 | 软件开发工具包的调用方法、装置及终端 |
CN108228169A (zh) * | 2017-12-08 | 2018-06-29 | 平安科技(深圳)有限公司 | 基于eCharts工具的图表制作方法、装置、设备及介质 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110389753A (zh) * | 2019-06-06 | 2019-10-29 | 五八有限公司 | 原生应用的链式调用方法、装置、电子设备及存储介质 |
CN110389753B (zh) * | 2019-06-06 | 2024-01-23 | 五八有限公司 | 原生应用的链式调用方法、装置、电子设备及存储介质 |
CN110275701A (zh) * | 2019-06-19 | 2019-09-24 | 网易传媒科技(北京)有限公司 | 数据处理方法、装置、介质和计算设备 |
CN110347445A (zh) * | 2019-07-12 | 2019-10-18 | 财付通支付科技有限公司 | Sdk调用方法、装置、服务器及存储介质 |
CN110362364A (zh) * | 2019-07-23 | 2019-10-22 | 深圳市元征科技股份有限公司 | 软件开发工具包功能调用方法、系统及电子设备和介质 |
CN110389756A (zh) * | 2019-07-23 | 2019-10-29 | 深圳市元征科技股份有限公司 | 软件开发工具包功能调用方法、系统及电子设备和介质 |
CN110399181A (zh) * | 2019-07-23 | 2019-11-01 | 深圳市元征科技股份有限公司 | 软件开发工具包功能调用方法、系统及电子设备和介质 |
CN110597492B (zh) * | 2019-08-07 | 2023-12-08 | 深圳市元征科技股份有限公司 | 一种调用模块的方法和相关产品 |
CN110597492A (zh) * | 2019-08-07 | 2019-12-20 | 深圳市元征科技股份有限公司 | 一种调用模块的方法和相关产品 |
CN110992607A (zh) * | 2019-11-22 | 2020-04-10 | 福建新大陆支付技术有限公司 | 一种通过接口协议方式接入终端的方法 |
CN111506601A (zh) * | 2020-03-31 | 2020-08-07 | 新华三大数据技术有限公司 | 一种数据处理方法及装置 |
CN111506601B (zh) * | 2020-03-31 | 2022-08-30 | 新华三大数据技术有限公司 | 一种数据处理方法及装置 |
CN112099772A (zh) * | 2020-08-21 | 2020-12-18 | 深圳市元征科技股份有限公司 | 通信接口封装方法、装置、设备及存储介质 |
CN112799744A (zh) * | 2021-01-29 | 2021-05-14 | 北京索为系统技术股份有限公司 | 工业app的调用方法、装置、计算机可读介质及电子设备 |
CN112799744B (zh) * | 2021-01-29 | 2024-05-07 | 北京索为系统技术股份有限公司 | 工业app的调用方法、装置、计算机可读介质及电子设备 |
CN116431107A (zh) * | 2023-03-14 | 2023-07-14 | 芜湖市桀蒲网络科技有限公司 | 一种基于大数据的软件模块划分方法及系统 |
CN116431107B (zh) * | 2023-03-14 | 2023-12-29 | 芜湖市桀蒲网络科技有限公司 | 一种基于大数据的软件模块划分方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109710340B (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109710340A (zh) | 软件工具调用方法及装置、软件工具封装方法及装置 | |
CN108449418A (zh) | 一种混合云平台管理系统及方法 | |
CN109845303B (zh) | 网络切片的管理方法及管理单元 | |
EP3605323A1 (en) | Method for generating network slice template and for applying network slice template, and apparatus | |
CN109714327A (zh) | 数据处理方法、装置、终端、系统及服务器 | |
CN104753715A (zh) | 混合sdn控制器 | |
CN107766194A (zh) | 测试方法、装置、系统、终端设备及计算机可读存储介质 | |
CN104899085B (zh) | 一种数据处理方法和装置 | |
CN104170334A (zh) | 利用事务来计算和传播网络转发状态 | |
CN107589998A (zh) | 资源配置方法及相关产品 | |
CN108401037A (zh) | 用户终端和设备的绑定方法、装置和系统 | |
CN109145034A (zh) | 资源呈现方法、装置及计算机终端 | |
CN103838516B (zh) | 一种用于多核处理器高效访问iSCSI磁盘阵列的方法及系统 | |
CN109656572A (zh) | 安装包的打包方法及装置、计算机设备、存储介质 | |
CN109412951A (zh) | 一种发送路由信息的方法和装置 | |
CN110389711A (zh) | 帮助端点设备实现sr-iov功能的方法、设备和计算机程序产品 | |
CN109120444A (zh) | 云资源管理方法、处理器以及存储介质 | |
CN111522840B (zh) | 标签的配置方法、装置、设备及计算机可读存储介质 | |
CN110958666B (zh) | 基于强化学习的网络切片资源映射方法 | |
CN110472109A (zh) | 动态化数据质量分析方法及平台系统 | |
CN109858257A (zh) | 访问控制方法及装置 | |
CN110633959A (zh) | 基于图结构的审批任务创建方法、装置、设备及介质 | |
CN114510452A (zh) | 片上系统soc集成方法、装置及电子设备 | |
CN109561165A (zh) | 域名系统配置方法及相关装置 | |
CN111192143A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |