CN109814943B - 服务构建方法、加载方法及装置、电子设备、存储介质 - Google Patents
服务构建方法、加载方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN109814943B CN109814943B CN201811574719.0A CN201811574719A CN109814943B CN 109814943 B CN109814943 B CN 109814943B CN 201811574719 A CN201811574719 A CN 201811574719A CN 109814943 B CN109814943 B CN 109814943B
- Authority
- CN
- China
- Prior art keywords
- plug
- sdk
- party service
- service
- interface
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种服务构建方法、加载方法及装置、电子设备、存储介质,利用插件化方法,根据SDK的基础服务将SDK拆分得到SDK基础包,可以降低SDK基础包的大小;创建与SDK基础包关联的插件基类来提供桥接接口,创建与桥接接口关联的功能插件。在接入第三方服务时,只需根据第三方服务的需求功能由功能插件处理后接入SDK基础包,进而将第三方服务接入APP,无需在第三方服务中添加不需要的功能,有效减小接入成本,适配过程简单。可见,本发明中提供的SDK在应用时不会受第三方服务影响,可控性强,稳定性好。
Description
技术领域
本发明涉及软件开发技术领域,尤其涉及服务构建方法、加载方法及装置、电子设备、存储介质。
背景技术
随着移动应用技术的快速发展,为了推广产品及服务,会对第三方的开发者提供软件开发工具包(Software Development Kit,SDK)。SDK中集成有各种开发服务,可以为应用程序(Application,App)开发者提供开发功能。由于开发的应用趋于复杂,SDK需要包含各种资源文件、代码文件等,使得SDK的自身结构越来越复杂。现有技术的开发过程中,开发人员创建APP工程后,一般需要下载SDK开发包,将下载后的SDK开发包集成于所述APP工程中,再进行下一步的开发工作。
在SDK开发时,开发包中会包含一些相对独立的复杂功能,还会依赖一些第三方服务或者自封装的其他静态库。在应用时,APP会将这些相对独立的功能及第三方服务打包进自己的SDK,即将SDK中不同类型文件人工拷贝到APP的目录下,不但会造成SDK功能臃肿不易拆分,同时还会使APP与第三方服务形成一种强依赖的模式。如果APP只想使用SDK的部分功能,却需要添加完整功能的SDK,使得APP既要适配自身SDK,同时也要适配依赖的第三方SDK,导致SDK使用十分不便,维护成本较高。
可见,现有的SDK在开发及应用时,APP与其他第三方服务接入时适配过程复杂;且如果任一个第三方服务出现故障,会造成SDK所有功能不可用,使得APP的稳定性得不到保障。因此,现有的SDK在应用时存在适配过程复杂、稳定性差的问题。
发明内容
本发明提供了一种服务构建方法、加载方法及装置、电子设备、存储介质,以解决现有的SDK在应用时存在适配过程复杂、稳定性差的问题。
第一方面,本发明提供了一种服务构建方法,该方法包括:
根据SDK的至少一个基础服务,创建SDK基础包;
创建与所述SDK基础包关联的插件基类,所述插件基类用于提供至少一个桥接接口;
创建与所述插件基类中每一个桥接接口对应的功能插件,每个所述功能插件连接一个第三方服务,所述功能插件用于将第三方服务通过桥接接口接入到SDK基础包。
可选地,所述基础服务包括网络请求、提示、加解密工具、统计和/或多媒体库访问。
可选地,所述桥接接口包括初始化接口、调用接口和数据传输接口;以及,所述创建与插件基类中每一个桥接接口对应的功能插件,包括:
获取所述第三方服务对应的插件名称;
根据所述插件名称,利用所述初始化接口初始化功能插件;
利用所述调用接口调用初始化后的功能插件,以由初始化后的功能插件对相应的第三方服务进行认证;
在所述初始化后的功能插件认证对应的第三方服务后,利用所述数据传输接口将处理得到的认证结果发送至SDK基础包,以将第三方服务接入SDK基础包。
第二方面,本发明还提供了一种服务加载方法,包括以下步骤:
根据SDK的至少一个基础服务,创建SDK基础包;
创建与所述SDK基础包关联的插件基类,所述插件基类用于提供至少一个桥接接口;
创建与所述插件基类中每一个桥接接口对应的功能插件,每个所述功能插件连接一个第三方服务,所述功能插件用于将第三方服务通过桥接接口接入到SDK基础包;
发送允许所述第三方服务接入的接入请求至SDK基础包;所述SDK基础包用于根据所述接入请求,调用插件基类对与第三方服务对应的功能插件进行初始化处理,以由所述初始化后的功能插件向第三方服务请求认证;
接收所述初始化后的功能插件返回的认证结果,以将第三方服务接入APP。
可选地,在发送允许所述第三方服务接入的接入请求至SDK基础包的步骤之前,还包括:
对所述SDK基础包进行初始化处理,设置SDK基础包所需的第三方服务对应的接入参数。
可选地,所述SDK基础包根据所述接入请求,调用插件基类对与第三方服务对应的功能插件进行初始化处理,以由所述初始化后的功能插件向第三方服务请求认证,包括:
所述SDK基础包根据所述接入请求中携带的第三方服务的接入参数,调用插件基类的初始化接口根据插件名称对与第三方服务对应的功能插件进行初始化处理;
由所述插件基类的调用接口调用初始化后的功能插件,以利用初始化后的功能插件向第三方服务请求认证。
可选地,所述接收初始化后的功能插件返回的认证结果,以将第三方服务接入APP,包括:
利用所述插件基类的数据传输接口,将初始化后的功能插件在完成与第三方服务认证的情况下返回的认证结果发送至SDK基础包;
接收所述SDK基础包发送的所述认证结果,以将第三方服务接入APP。
第三方面,本发明还提供了一种服务构建装置,包括:
SDK基础包创建模块,用于根据SDK的至少一个基础服务,创建SDK基础包;
插件基类创建模块,用于创建与所述SDK基础包关联的插件基类,所述插件基类用于提供至少一个桥接接口;
功能插件创建模块,用于创建与所述插件基类中每一个桥接接口对应的功能插件,每个所述功能插件连接一个第三方服务,所述功能插件用于将第三方服务通过桥接接口接入到SDK基础包。
可选地,所述基础服务包括网络请求、提示、加解密工具、统计和/或多媒体库访问。
可选地,所述桥接接口包括初始化接口、调用接口和数据传输接口;以及,所述功能插件创建模块包括:
获取单元,用于获取所述第三方服务对应的插件名称;
初始化单元,用于根据所述插件名称,利用所述初始化接口初始化功能插件;
第一调用单元,用于利用所述调用接口调用初始化后的功能插件,以由初始化后的功能插件对相应的第三方服务进行认证;
第一发送单元,用于在所述初始化后的功能插件认证对应的第三方服务后,利用所述数据传输接口将处理得到的认证结果发送至SDK基础包,以将第三方服务接入SDK基础包。
第四方面,本发明还提供了一种服务加载装置,包括:
SDK基础包创建模块,用于根据SDK的至少一个基础服务,创建SDK基础包;
插件基类创建模块,用于创建与所述SDK基础包关联的插件基类,所述插件基类用于提供至少一个桥接接口;
功能插件创建模块,用于创建与所述插件基类中每一个桥接接口对应的功能插件,每个所述功能插件连接一个第三方服务,所述功能插件用于将第三方服务通过桥接接口接入到SDK基础包;
发送模块,用于发送允许所述第三方服务接入的接入请求至SDK基础包;所述SDK基础包用于根据所述接入请求,调用插件基类对与第三方服务对应的功能插件进行初始化处理,以由所述初始化后的功能插件向第三方服务请求认证;
接收模块,用于接收所述初始化后的功能插件返回的认证结果,以将第三方服务接入APP。
可选地,还包括:
参数设置模块,用于对所述SDK基础包进行初始化处理,设置SDK基础包所需的第三方服务对应的接入参数。
可选地,所述发送模块,包括:
第二调用单元,所述SDK基础包根据所述接入请求中携带的第三方服务的接入参数,用于调用插件基类的初始化接口根据插件名称对与第三方服务对应的功能插件进行初始化处理;
第三调用单元,用于由所述插件基类的调用接口调用初始化后的功能插件,以利用初始化后的功能插件向第三方服务请求认证。
可选地,所述接收模块,包括:
第二发送单元,利用所述插件基类的数据传输接口,将初始化后的功能插件在完成与第三方服务认证的情况下返回的认证结果发送至SDK基础包;
接收单元,用于接收所述SDK基础包发送的所述认证结果,以将第三方服务接入APP。
第五方面,本发明还提供了一种电子设备,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,以实现第一方面所述的服务构建方法。
第六方面,本发明还提供了一种电子设备,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,以实现第二方面所述的服务加载方法。
第七方面,本发明还提供了一种存储介质,所述存储介质中存储有计算机程序,当服务构建装置的至少一个处理器执行所述计算机程序时,服务构建装置执行第一方面所述的服务构建方法。
第八方面,本发明还提供了一种存储介质,其特征在于,所述存储介质中存储有计算机程序,当服务加载装置的至少一个处理器执行所述计算机程序时,服务加载装置执行第二方面所述的服务加载方法。
由以上技术方案可知,本发明提供的一种服务构建方法、加载方法及装置、电子设备、存储介质,利用插件化方法,根据SDK的基础服务将SDK拆分得到SDK基础包,可以降低SDK基础包的大小;创建与SDK基础包关联的插件基类来提供桥接接口,创建与桥接接口关联的功能插件。在接入第三方服务时,只需根据第三方服务的需求功能由功能插件处理后接入SDK基础包,进而将第三方服务接入APP,无需在第三方服务中添加不需要的功能,有效减小接入成本,适配过程简单。可见,本发明中提供的SDK在应用时不会受第三方服务影响,可控性强,稳定性好。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的服务构建方法的流程图;
图2为本发明实施例提供的完整SDK的结构框图;
图3为本发明实施例提供的创建功能插件的方法流程图;
图4为本发明实施例提供的服务加载方法的流程图;
图5为本发明实施例提供的完整SDK的交互图;
图6为本发明实施例提供的服务构建装置的结构框图;
图7为本发明实施例提供的服务加载装置的结构框图;
图8为本发明实施例提供的一种电子设备的硬件结构示意图;
图9为本发明实施例提供的另一种电子设备的硬件结构示意图。
具体实施方式
图1为本发明实施例提供的服务构建方法的流程图;图2为本发明实施例提供的完整SDK的结构框图。
本发明实施例提供的一种服务构建方法,利用插件化方法将现有的SDK功能进行拆分,即将主要功能和次要功能进行划分,使得SDK只具有基础包能力。插件化方法是将整个APP拆分成很多模块,这些模块包括一个宿主和多个插件。每个模块都是一个apk,最终打包的时候将宿主apk和插件apk分开或者联合打包。
本实施例采用插件化方法中将宿主apk和插件apk分开打包的方式,拆分第三方服务,根据第三方服务的功能,将SDK插件化,减少SDK基础包100的依赖,降低接入成本。同时,APP在与第三方服务交互时,只需按照自身需求的功能调用SDK基础包100,无需添加完整功能的SDK,使得适配过程简单,稳定性好。
具体地,参见图1和图2,本实施例提供的一种服务构建方法,包括以下步骤:
S101、根据SDK的至少一个基础服务,创建SDK基础包。
SDK中常用的基础服务与第三方服务400的功能有关,本实施例中,基础服务即主要功能,包括网络请求、提示、加解密工具、统计和/或多媒体库访问。即根据第三方服务400的上述常用功能,将SDK拆分,将最常用的功能封装为一个SDK基础包100。根据实际的应用,基础服务还可包括其他,本实施例不做具体限定。
本实施例中,SDK基础包100中封装的基础服务均以插件形式存在,根据不同的第三方服务400,SDK基础包100中封装不同的基础服务,可有效降低SDK基础包100体积及维护成本,使用也更加灵活。
S102、创建与SDK基础包关联的插件基类,插件基类用于提供至少一个桥接接口。
插件基类200依附于SDK基础包100,仅用于负责提供接口,不负责具体功能,该接口为数据传输的统一接口。桥接接口包括初始化接口、调用接口和数据传输接口。每一个桥接接口与SDK基础包100中的每一个基础服务的插件连接,形成多对多的连接关系,通过桥接接口实现数据的处理和传输。
桥接接口包括两个对外接口和block回调接口,两个对外接口分别为初始化接口和调用接口。初始化接口用于通过插件名初始化插件;调用接口用于调用插件功能,即发起业务流程,主要包括传入参数和结果回调。
block回调接口为数据传输接口,数据传输接口用于通过block回传结果。在调用接口发起业务流程后,即功能插件处理完相应业务后,结果回传由数据传输接口实现,再由数据传输接口将回传的结果发送至SDK基础包100。回传的结果包括状态码和相应功能的具体数据。
S103、创建与插件基类中每一个桥接接口对应的功能插件,每个功能插件连接一个第三方服务,功能插件用于将第三方服务通过桥接接口接入到SDK基础包。
本实施例中创建的功能插件300,采用继承模式,即功能插件300继承自插件基类200。功能插件300的插件类型为静态库,封装独立的功能,负责与第三方服务400交互。其中,静态库在链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。
由于SDK的主要功能均封装于SDK基础包100中,而其次要功能则单独以插件形式存在。每一个功能插件300可视为由SDK中拆出来的次要功能插件,即根据第三方服务400的次要功能得到继承插件基类200的功能插件300,功能插件300利用插件基类200提供的统一桥接接口,通过相应的插件名称后实例化得到。
功能插件300与插件基类200为多对多的连接关系,即每个功能插件300可对应插件基类200中的多个接口,而多个功能插件300也可对应同一个插件基类200中的任一个接口,使得均可通过初始化接口、调用接口和数据传输接口实现业务的连接和处理。在实际应用中,功能插件300指具体的一项功能,比如人脸识别、手机号校验或支付等。
具体地,如图3所示,本实施例中,创建与插件基类中每一个桥接接口对应的功能插件,包括:
S1031、获取第三方服务对应的插件名称;
S1032、根据插件名称,利用初始化接口初始化功能插件;
不同的第三方服务400对应不同的功能插件300,而每个功能插件300对应一个插件名称。在APP需要添加一项功能时,可根据这个功能对应的插件名称,利用插件基类200中的初始化接口,对插件名称对应的功能插件300进行初始化处理,以对功能插件300配置一些相关参数。例如,APP接入第三方服务400时,会初始化与第三方服务400对应的功能插件300,以使该功能插件300具有第三方服务400接入时的相关参数,便于后续接入流程。
S1033、利用调用接口调用初始化后的功能插件,以由初始化后的功能插件对相应的第三方服务进行认证;
在对相应的插件配置相关参数后,由插件基类200中的调用接口调用初始化后的功能插件300,以将欲添加到APP的目标第三方服务400的功能经过功能插件300的认证,添加到APP中。
S1034、在初始化后的功能插件认证对应的第三方服务后,利用数据传输接口将处理得到的认证结果发送至SDK基础包,以将第三方服务接入SDK基础包。
在功能插件300完成认证后,将处理完的结果通过数据传输接口回传到SDK基础包100,以将第三方服务400与SDK基础包100建立连接,即将第三方服务400接入SDK基础包100所在的APP,实现APP的按需接入第三方服务400的目的。
可见,本实施例提供的一种服务构建方法,利用插件化方法对SDK进行拆分,大大降低SDK基础包100大小,接入APP对SDK的能力可选,无需添加不需要的功能,有效减小接入成本。同时,也可以避免因采用现有的SDK时,如果APP只想使用SDK的部分功能,却需要添加完整功能的SDK,使得APP既要适配自身SDK,同时也要适配依赖的第三方SDK的问题,使得APP与第三方服务400接入时适配过程简单;也不会出现任一个第三方服务400出现故障,会导致SDK所有功能不可用的现象。可见,本实施例提供的服务构建方法,可提高SDK能力的可控性和稳定性,避免受第三方服务400的强制约束。
图4为本发明实施例提供的服务加载方法的流程图;图5为本发明实施例提供的完整SDK的交互图。
为了说明上述实施例提供的一种服务构建方法所能取得的效果,本发明另一实施例提供的一种服务加载方法,用于对上述实施例提供的服务构建方法进行应用。该服务加载方法的执行主体为APP500,且需在预接入第三方服务400的APP500中添加SDK基础包100和第三方服务400相关SDK。
具体地,如图4和图5所示,该服务加载方法包括以下步骤:
S201、根据SDK的至少一个基础服务,创建SDK基础包;
S202、创建与所述SDK基础包关联的插件基类,所述插件基类用于提供至少一个桥接接口;
S203、创建与所述插件基类中每一个桥接接口对应的功能插件,每个所述功能插件连接一个第三方服务,所述功能插件用于将第三方服务通过桥接接口接入到SDK基础包;
本实施例中,步骤S201至S203的内容与上述实施例中的步骤S101至S103的内容相同,关于步骤S201至S203方案的具体内容可参照上述实施例中的步骤S101至S103的内容,此处不再赘述。
S204、发送允许所述第三方服务接入的接入请求至SDK基础包;所述SDK基础包用于根据所述接入请求,调用插件基类对与第三方服务对应的功能插件进行初始化处理,以由所述初始化后的功能插件向第三方服务请求认证。
APP500接入SDK基础包100进行交互,欲添加新功能的APP发送接入请求,用于请求第三方服务400的接入。SDK基础包100根据该接入请求与第三方服务400进行认证,而在进行认证时,需要依据相应的参数,以实现将需要的第三方服务400接入APP的目的。因此,SDK基础包100中需要配置相应的参数以便于后续第三方服务400的认证。
即APP在发送允许所述第三方服务接入的接入请求至SDK基础包的步骤之前,还包括:
S200、对SDK基础包进行初始化处理,设置SDK基础包所需的第三方服务对应的接入参数。
在APP中添加SDK基础包100后,对SDK基础包100进行初始化处理,以配置SDK基础包100所需的接入参数,该接入参数与第三方服务400的参数相关。
SDK基础包100根据接入请求,调用插件基类对与第三方服务对应的功能插件进行初始化处理,以由初始化后的功能插件向第三方服务请求认证。
SDK基础包100接收到APP发送的接入请求后,调用自身的插件基类200,即调用SDK基础包100的接口,发起验证流程,包括对与第三方服务400对应的功能插件300进行初始化处理,以及通过初始化后的功能插件300向第三方服务400请求认证,以在认证通过后将第三方服务400中的功能接入APP。
具体地,本实施例中,SDK基础包100根据所述接入请求,调用插件基类200对与第三方服务400对应的功能插件300进行初始化处理,以由初始化后的功能插件300向第三方服务400请求认证,包括:
S2041、SDK基础包根据接入请求中携带的第三方服务的接入参数,调用插件基类的初始化接口根据插件名称对与第三方服务对应的功能插件进行初始化处理;
S2042、由插件基类的调用接口调用初始化后的功能插件,以利用初始化后的功能插件向第三方服务请求认证。
由于APP发送的接入请求中携带第三方服务400的接入参数,可知APP欲添加的功能为哪一项,即可知该功能对应的插件名称。而依附于SDK基础包100的插件基类200包括初始化接口、调用接口和数据传输接口,因此,SDK基础包100利用初始化接口根据该功能名称对与第三方服务400对应的功能插件300进行初始化处理,以便为该插件配置第三方服务400中目标功能的接入参数。
在经过初始化处理,目标插件配置接入参数之后,由调用接口调用与目标插件对应的功能插件300,由功能插件300向第三方服务400发起唤醒请求,即对第三方服务400进行认证。
S205、接收初始化后的功能插件返回的认证结果,以将第三方服务接入APP。
在初始化后的功能插件300对第三方服务400的目标功能进行认证后,第三方服务400会回传一个结果给功能插件300,由该功能插件300将第三方服务400返回的认证结果发送至SDK基础包100,再由SDK基础包100反馈至APP,以将第三方服务400的目标功能接入APP。
具体地,本实施例中,所述接收初始化后的功能插件返回的认证结果,以将第三方服务接入APP,包括:
S2051、利用插件基类的数据传输接口,将初始化后的功能插件在完成与第三方服务认证的情况下返回的认证结果发送至SDK基础包;
S2052、接收所述SDK基础包发送的所述认证结果,以将第三方服务接入APP。
初始化后的功能插件300接收到第三方服务400回传的认证结果后,通过数据传输接口回传到SDK基础包100,而SDK基础包100与APP进行交互,即将认证结果发送至APP,实现将第三方服务400接入APP的目的。
可见,本实施例提供的服务加载方法,利用拆分后得到的SDK基础包100,APP按需对SDK能力进行选择,只需添加自身需要的功能而无需添加全部功能,可降低接入成本,使得适配过程简单。利用插件化方法将SDK进行拆分,可提高SDK的稳定性,进而在应用SDK基础包100时,也可提高APP接入第三方服务400的稳定性,避免受第三方服务400的制约,提高SDK的可控性。
为准确说明本发明实施例提供的服务构建方法和加载方法所能取得的有益效果,下面以一具体实施方式来举例说明。
本实施例以网关认证为例进行说明,第三方服务为运营商验证手机号流程,功能插件为网关认证插件,其完整交互流程如下:
第一步:APP端添加支持网关认证功能的完整SDK,包括SDK基础包,网关认证功能插件SDK,运营商提供的手机号校验SDK;
第二步:对APP中添加的SDK基础包进行初始化处理,以设置SDK基础包所需的网关认证相关的参数;
第三步:调用SDK基础包的各接口,发起网关验证流程;
第四步:SDK基础包根据APP传入的参数,调用插件基类的各接口,利用插件基类通过插件名称初始化网关认证插件;该参数为APP发送接入请求时携带的网关认证的接入参数;
第五步:网关认证插件发起网关认证流程,调用运营商SDK,进行手机号校验流程;
第六步:运营商将校验结果传至网关认证插件,网关认证插件传至SDK基础包,SDK基础包将验证结果传至APP,即将网关认证功能添加到APP。
图6为本发明实施例提供的服务构建装置的结构框图。如图6所示,本发明实施例提供的一种服务构建装置,用于执行图1至图3所示的服务构建方法的相关步骤。具体地,该装置包括:
SDK基础包创建模块11,用于根据SDK的至少一个基础服务,创建SDK基础包;
插件基类创建模块12,用于创建与所述SDK基础包关联的插件基类,所述插件基类用于提供至少一个桥接接口;
功能插件创建模块13,用于创建与所述插件基类中每一个桥接接口对应的功能插件,每个所述功能插件连接一个第三方服务,所述功能插件用于将第三方服务通过桥接接口接入到SDK基础包。
可选地,所述基础服务包括网络请求、提示、加解密工具、统计和/或多媒体库访问。
可选地,所述桥接接口包括初始化接口、调用接口和数据传输接口;以及,功能插件创建模块13包括:
获取单元,用于获取所述第三方服务对应的插件名称;
初始化单元,用于根据所述插件名称,利用所述初始化接口初始化功能插件;
第一调用单元,用于利用所述调用接口调用初始化后的功能插件,以由初始化后的功能插件对相应的第三方服务进行认证;
第一发送单元,用于在所述初始化后的功能插件认证对应的第三方服务后,利用所述数据传输接口将处理得到的认证结果发送至SDK基础包,以将第三方服务接入SDK基础包。
图7为本发明实施例提供的服务加载装置的结构框图。如图7所示,本发明实施例提供的一种服务加载装置,用于执行图4所示的服务加载方法的相关步骤。具体地,该装置包括:
SDK基础包创建模块11,用于根据SDK的至少一个基础服务,创建SDK基础包;
插件基类创建模块12,用于创建与所述SDK基础包关联的插件基类,所述插件基类用于提供至少一个桥接接口;
功能插件创建模块13,用于创建与所述插件基类中每一个桥接接口对应的功能插件,每个所述功能插件连接一个第三方服务,所述功能插件用于将第三方服务通过桥接接口接入到SDK基础包;
发送模块14,用于发送允许所述第三方服务接入的接入请求至SDK基础包;所述SDK基础包用于根据所述接入请求,调用插件基类对与第三方服务对应的功能插件进行初始化处理,以由所述初始化后的功能插件向第三方服务请求认证;
接收模块15,用于接收所述初始化后的功能插件返回的认证结果,以将第三方服务接入APP。
可选地,还包括:
参数设置模块16,用于对SDK基础包初始化,设置SDK基础包所需的第三方服务对应的接入参数。
可选地,发送模块14包括:
第二调用单元,所述SDK基础包根据所述接入请求中携带的第三方服务的接入参数,用于调用插件基类的初始化接口根据插件名称对与第三方服务对应的功能插件进行初始化处理;
第三调用单元,用于由所述插件基类的调用接口调用初始化后的功能插件,以利用初始化后的功能插件向第三方服务请求认证。
可选地,所述接收模块15,包括:
第二发送单元,利用所述插件基类的数据传输接口,将初始化后的功能插件在完成与第三方服务认证的情况下返回的认证结果发送至SDK基础包;
接收单元,用于接收所述SDK基础包发送的所述认证结果,以将第三方服务接入APP。
图8为本发明实施例提供的电子设备的硬件结构示意图。如图8所示,本发明还提供了一种电子设备,包括:
存储器611,用于存储程序指令;
处理器612,用于调用并执行所述存储器中的程序指令,以实现上述实施例所述的服务构建方法。具体可以参见前述实施例中的相关描述。
本实施例中,处理器612和存储器611可通过总线或其他方式连接。处理器可以是通用处理器,例如中央处理器、数字信号处理器、专用集成电路,或者被配置成实施本发明实施例的一个或多个集成电路。存储器可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘。
图9为本发明实施例提供的另一种电子设备的硬件结构示意图。如图9所示,本发明还提供了一种电子设备,包括:
存储器621,用于存储程序指令;
处理器622,用于调用并执行所述存储器中的程序指令,以实现上述实施例所述的服务加载方法。具体可以参见前述实施例中的相关描述。
本实施例中,处理器622和存储器621可通过总线或其他方式连接。处理器可以是通用处理器,例如中央处理器、数字信号处理器、专用集成电路,或者被配置成实施本发明实施例的一个或多个集成电路。存储器可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘。
本发明实施例还提供了一种存储介质,所述存储介质中存储有计算机程序,当服务构建装置的至少一个处理器执行所述计算机程序时,服务构建装置执行上述实施例所述的服务构建方法。
本发明实施例还提供了一种存储介质,其特征在于,所述存储介质中存储有计算机程序,当服务加载装置的至少一个处理器执行所述计算机程序时,服务加载装置执行上述实施例所述的服务加载方法。
所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于服务构建装置和服务加载装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本发明实施方式并不构成对本发明保护范围的限定。
Claims (18)
1.一种服务构建方法,其特征在于,包括以下步骤:
根据SDK的至少一个基础服务,对SDK进行拆分,创建与基础服务对应的SDK基础包,所述SDK基础包用于实现SDK的主要功能;
创建与所述SDK基础包关联的插件基类,所述插件基类用于提供至少一个桥接接口;
创建与所述插件基类中每一个桥接接口对应的功能插件,所述功能插件继承自所述插件基类,每个所述功能插件连接一个第三方服务,所述功能插件用于将第三方服务通过桥接接口接入到SDK基础包,所述功能插件用于实现所述SDK的次要功能,在APP接入第三方服务时,按照APP的自身需求功能,利用功能插件添加与所述自身需求功能对应的SDK基础包,实现APP的按需添加第三方服务的目的;其中,所述桥接接口包括初始化接口、调用接口和数据传输接口,所述初始化接口用于对所述功能插件进行初始化处理,所述调用接口用于调用初始化后的功能插件对对应的第三方服务进行处理,所述数据传输接口用于将对第三方服务处理后的结果发送至SDK基础包。
2.根据权利要求1所述的方法,其特征在于,所述基础服务包括网络请求、提示、加解密工具、统计和/或多媒体库访问。
3.根据权利要求1所述的方法,其特征在于,所述创建与插件基类中每一个桥接接口对应的功能插件,包括:
获取所述第三方服务对应的插件名称;
根据所述插件名称,利用所述初始化接口初始化功能插件;
利用所述调用接口调用初始化后的功能插件,以由初始化后的功能插件对相应的第三方服务进行认证;
在所述初始化后的功能插件认证对应的第三方服务后,利用所述数据传输接口将处理得到的认证结果发送至SDK基础包,以将第三方服务接入SDK基础包。
4.一种服务加载方法,其特征在于,包括以下步骤:
根据SDK的至少一个基础服务,对SDK进行拆分,创建与基础服务对应的SDK基础包,所述SDK基础包用于实现SDK的主要功能;
创建与所述SDK基础包关联的插件基类,所述插件基类用于提供至少一个桥接接口;
创建与所述插件基类中每一个桥接接口对应的功能插件,所述功能插件继承自所述插件基类,每个所述功能插件连接一个第三方服务,所述功能插件用于将第三方服务通过桥接接口接入到SDK基础包,所述功能插件用于实现所述SDK的次要功能;
按照APP自身需求功能,发送允许与APP自身需求功能对应的第三方服务接入的接入请求至SDK基础包;所述SDK基础包用于根据所述接入请求,调用插件基类对与第三方服务对应的功能插件进行初始化处理,以由所述初始化后的功能插件向第三方服务请求认证;
接收所述初始化后的功能插件返回的认证结果,以将与APP自身需求功能对应的第三方服务接入APP,实现APP的按需添加第三方服务的目的。
5.根据权利要求4所述的方法,其特征在于,在发送允许所述第三方服务接入的接入请求至SDK基础包的步骤之前,还包括:
对所述SDK基础包进行初始化处理,设置SDK基础包所需的第三方服务对应的接入参数。
6.根据权利要求4所述的方法,其特征在于,所述SDK基础包根据接入请求,调用插件基类对与第三方服务对应的功能插件进行初始化处理,以由所述初始化后的功能插件向第三方服务请求认证,包括:
所述SDK基础包根据所述接入请求中携带的第三方服务的接入参数,调用插件基类的初始化接口根据插件名称对与第三方服务对应的功能插件进行初始化处理;
由所述插件基类的调用接口调用初始化后的功能插件,以利用初始化后的功能插件向第三方服务请求认证。
7.根据权利要求4所述的方法,其特征在于,所述接收初始化后的功能插件返回的认证结果,以将第三方服务接入APP,包括:
利用所述插件基类的数据传输接口,将初始化后的功能插件在完成与第三方服务认证的情况下返回的认证结果发送至SDK基础包;
接收所述SDK基础包发送的所述认证结果,以将第三方服务接入APP。
8.一种服务构建装置,其特征在于,包括:
SDK基础包创建模块,用于根据SDK的至少一个基础服务,对SDK进行拆分,创建与基础服务对应的SDK基础包,所述SDK基础包用于实现SDK的主要功能;
插件基类创建模块,用于创建与所述SDK基础包关联的插件基类,所述插件基类用于提供至少一个桥接接口;
功能插件创建模块,用于创建与所述插件基类中每一个桥接接口对应的功能插件,所述功能插件继承自所述插件基类,每个所述功能插件连接一个第三方服务,所述功能插件用于将第三方服务通过桥接接口接入到SDK基础包,所述功能插件用于实现所述SDK的次要功能,在APP接入第三方服务时,按照APP的自身需求功能,利用功能插件添加与所述自身需求功能对应的SDK基础包,实现APP的按需添加第三方服务的目的;其中,所述桥接接口包括初始化接口、调用接口和数据传输接口,所述初始化接口用于对所述功能插件进行初始化处理,所述调用接口用于调用初始化后的功能插件对对应的第三方服务进行处理,所述数据传输接口用于将对第三方服务处理后的结果发送至SDK基础包。
9.根据权利要求8所述的装置,其特征在于,所述基础服务包括网络请求、提示、加解密工具、统计和/或多媒体库访问。
10.根据权利要求8所述的装置,其特征在于,所述功能插件创建模块包括:
获取单元,用于获取所述第三方服务对应的插件名称;
初始化单元,用于根据所述插件名称,利用所述初始化接口初始化功能插件;
第一调用单元,用于利用所述调用接口调用初始化后的功能插件,以由初始化后的功能插件对相应的第三方服务进行认证;
第一发送单元,用于在所述初始化后的功能插件认证对应的第三方服务后,利用所述数据传输接口将处理得到的认证结果发送至SDK基础包,以将第三方服务接入SDK基础包。
11.一种服务加载装置,其特征在于,包括:
SDK基础包创建模块,用于根据SDK的至少一个基础服务,对SDK进行拆分,创建与基础服务对应的SDK基础包;
插件基类创建模块,用于创建与所述SDK基础包关联的插件基类,所述插件基类用于提供至少一个桥接接口;
功能插件创建模块,用于创建与所述插件基类中每一个桥接接口对应的功能插件,所述功能插件继承自所述插件基类,每个所述功能插件连接一个第三方服务,所述功能插件用于将第三方服务通过桥接接口接入到SDK基础包,所述功能插件用于实现所述SDK的次要功能;
发送模块,用于按照APP自身需求功能,发送允许与APP自身需求功能对应的第三方服务接入的接入请求至SDK基础包;所述SDK基础包用于根据所述接入请求,调用插件基类对与第三方服务对应的功能插件进行初始化处理,以由所述初始化后的功能插件向第三方服务请求认证;
接收模块,用于接收所述初始化后的功能插件返回的认证结果,以将与APP自身需求功能对应的第三方服务接入APP,实现APP的按需添加第三方服务的目的。
12.根据权利要求11所述的装置,其特征在于,还包括:
参数设置模块,用于对所述SDK基础包进行初始化处理,设置SDK基础包所需的第三方服务对应的接入参数。
13.根据权利要求11所述的装置,其特征在于,所述发送模块,包括:
第二调用单元,所述SDK基础包根据所述接入请求中携带的第三方服务的接入参数,用于调用插件基类的初始化接口根据插件名称对与第三方服务对应的功能插件进行初始化处理;
第三调用单元,用于由所述插件基类的调用接口调用初始化后的功能插件,以利用初始化后的功能插件向第三方服务请求认证。
14.根据权利要求11所述的装置,其特征在于,所述接收模块,包括:
第二发送单元,利用所述插件基类的数据传输接口,将初始化后的功能插件在完成与第三方服务认证的情况下返回的认证结果发送至SDK基础包;
接收单元,用于接收所述SDK基础包发送的所述认证结果,以将第三方服务接入APP。
15.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,以实现权利要求1~3任一项所述的服务构建方法。
16.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,以实现权利要求4~7任一项所述的服务加载方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当服务构建装置的至少一个处理器执行所述计算机程序时,服务构建装置执行权利要求1~3任一项所述的服务构建方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当服务加载装置的至少一个处理器执行所述计算机程序时,服务加载装置执行权利要求4~7任一项所述的服务加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811574719.0A CN109814943B (zh) | 2018-12-21 | 2018-12-21 | 服务构建方法、加载方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811574719.0A CN109814943B (zh) | 2018-12-21 | 2018-12-21 | 服务构建方法、加载方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109814943A CN109814943A (zh) | 2019-05-28 |
CN109814943B true CN109814943B (zh) | 2022-04-22 |
Family
ID=66602197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811574719.0A Active CN109814943B (zh) | 2018-12-21 | 2018-12-21 | 服务构建方法、加载方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109814943B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502239A (zh) * | 2019-08-19 | 2019-11-26 | 武汉蓝星科技股份有限公司 | 一种车载***sdk的开发制作方法及装置 |
CN111209122B (zh) * | 2019-12-24 | 2024-06-11 | 广州华多网络科技有限公司 | 接口调用方法、装置、电子设备及存储介质 |
CN111242104A (zh) * | 2020-04-10 | 2020-06-05 | 支付宝(杭州)信息技术有限公司 | 服务调用方法及装置 |
CN111562928B (zh) * | 2020-04-28 | 2023-05-05 | 北京字节跳动网络技术有限公司 | 资源提供方法及装置、资源下载方法及装置 |
CN113253986B (zh) * | 2021-05-31 | 2024-07-16 | 猫岐智能科技(上海)有限公司 | 新旧业务***混合设计方法及*** |
CN113867840B (zh) * | 2021-09-29 | 2023-06-13 | 四川长虹电器股份有限公司 | 一种智能电视web native插件框架及构建方法 |
CN114528054B (zh) * | 2022-01-19 | 2024-05-10 | 浪潮卓数大数据产业发展有限公司 | 基于业务模块的第三方sdk初始化方法、装置、设备及介质 |
CN114637525A (zh) * | 2022-03-10 | 2022-06-17 | ***股份有限公司 | Sdk与接入应用的兼容方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104067571A (zh) * | 2012-01-16 | 2014-09-24 | 微软公司 | 用于无线网络连接性的可扩展框架 |
WO2017088388A1 (zh) * | 2015-11-25 | 2017-06-01 | 乐视控股(北京)有限公司 | 应用的sdk的升级方法及*** |
CN107122200A (zh) * | 2016-02-25 | 2017-09-01 | 博雅网络游戏开发(深圳)有限公司 | 加载插件sdk的方法、***及客户端 |
WO2018203740A1 (fr) * | 2017-05-05 | 2018-11-08 | Universite Internationale De Rabat | Nouvelle conception d'un système d'informations géographiques |
CN108958842A (zh) * | 2018-07-12 | 2018-12-07 | 北京猫眼文化传媒有限公司 | 应用程序以及应用程序的业务插件使用方法 |
-
2018
- 2018-12-21 CN CN201811574719.0A patent/CN109814943B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104067571A (zh) * | 2012-01-16 | 2014-09-24 | 微软公司 | 用于无线网络连接性的可扩展框架 |
WO2017088388A1 (zh) * | 2015-11-25 | 2017-06-01 | 乐视控股(北京)有限公司 | 应用的sdk的升级方法及*** |
CN107122200A (zh) * | 2016-02-25 | 2017-09-01 | 博雅网络游戏开发(深圳)有限公司 | 加载插件sdk的方法、***及客户端 |
WO2018203740A1 (fr) * | 2017-05-05 | 2018-11-08 | Universite Internationale De Rabat | Nouvelle conception d'un système d'informations géographiques |
CN108958842A (zh) * | 2018-07-12 | 2018-12-07 | 北京猫眼文化传媒有限公司 | 应用程序以及应用程序的业务插件使用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109814943A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109814943B (zh) | 服务构建方法、加载方法及装置、电子设备、存储介质 | |
CN110187912B (zh) | 一种节点选择方法和装置 | |
US11232405B2 (en) | Computer readable storage media for dynamic service deployment and methods and systems for utilizing same | |
WO2022134186A1 (zh) | 区块链的智能合约调用方法、装置、服务器和存储介质 | |
US9456017B2 (en) | System and method for a connector being able to adapt to newer features introduced to a messaging provider with only configuration changes | |
US20240054366A1 (en) | AI Application Deployment Method and Related Platform, Cluster, Medium, and Program Product | |
CN111209122B (zh) | 接口调用方法、装置、电子设备及存储介质 | |
CN107770269A (zh) | 一种服务响应方法及其终端 | |
WO2016041322A1 (zh) | 移动智能终端下转发应用内流量的方法 | |
CN111858101A (zh) | 面向云架构***的适配方法、装置、设备及存储介质 | |
WO2023010814A1 (zh) | 一种对Dio网络请求进行监控的方法和装置 | |
CN111367685B (zh) | 接口调用的方法及装置、计算机设备、存储介质 | |
CN110673892B (zh) | 一种基于组件配置的接口统一调用方法 | |
CN109725887B (zh) | 基于消息研发框架的数据交互方法、装置及终端设备 | |
CN104636249A (zh) | 一种应用程序调试信息生成***和方法 | |
US6829575B2 (en) | Enterprise javabeans container | |
WO2017219778A1 (zh) | 路由器业务配置方法及路由器、存储介质 | |
WO2023092316A1 (zh) | 一种第三方服务登录方法、装置、终端设备及存储介质 | |
CN106790739B (zh) | 一种dns服务的预加载启动方法、预加载***及管理*** | |
CN111092916B (zh) | 文件上传的方法、装置、电子设备及介质 | |
CN111857736A (zh) | 云计算产品的生成方法、装置、设备及存储介质 | |
WO2020015151A1 (zh) | 数据库表的参数***方法、装置、终端设备及存储介质 | |
WO2023103890A1 (zh) | 扩容方法、装置及电子设备 | |
US20230074580A1 (en) | Runtime-tailored security policies for applications | |
US8572561B1 (en) | Multiple java ME MIDlet execution in single-instance CLDC JVM |
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 |