接口调用方法、装置、电子设备及存储介质制造方法及图纸

技术编号:24330790 阅读:74 留言:0更新日期:2020-05-29 19:32
本申请公开了一种接口调用方法、装置、电子设备及存储介质,该接口调用方法包括:获取服务请求,所述服务请求用于调用软件开发工具包SDK的与所述服务请求对应的服务接口;获取与所述服务接口对应的动态代理类,所述动态代理类被预先根据所述服务接口的调用方法进行实例化,以保证所述服务接口被调用前所述SDK被初始化;根据所述动态代理类执行对所述服务接口的调用。本申请利用动态代理机制来保证SDK的服务接口被实际调用前,SDK的初始化状态已完成。

Interface calling method, device, electronic equipment and storage medium

【技术实现步骤摘要】
接口调用方法、装置、电子设备及存储介质
本申请涉及信息处理
,更具体地,涉及一种接口调用方法、装置、电子设备及存储介质。
技术介绍
软件开发工具包(SoftwareDevelopmentKit,SDK)是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合。目前,大多数的SDK为了保证业务时序的正常,都会要求使用方在使调用SDK的服务接口前,要完成SDK的初始化。
技术实现思路
本申请实施例提出了一种接口调用方法、装置、电子设备及存储介质,可通过动态代理机制实现在调用SDK的服务接口之前,SDK的初始化状态已完成。第一方面,本申请实施例提供了一种接口调用方法,该方法包括:获取服务请求,所述服务请求用于调用软件开发工具包SDK的与所述服务请求对应的服务接口;获取与所述服务接口对应的动态代理类,所述动态代理类被预先根据所述服务接口的调用方法进行实例化,以保证所述服务接口被调用前所述SDK被初始化;根据所述动态代理类执行对所述服务接口的调用。第二方面,本申请实施例提供了一种接口调用装置,该装置包括:请求获取模块、代理获取模块以及代理调用模块。其中,请求获取模块用于获取服务请求,所述服务请求用于调用软件开发工具包SDK的与所述服务请求对应的服务接口;代理获取模块用于获取与所述服务接口对应的动态代理类,所述动态代理类被预先根据所述服务接口的调用方法进行实例化,以保证所述服务接口被调用前所述SDK被初始化;代理调用模块用于根据所述动态代理类执行对所述服务接口的调用。第三方面,本申请实施例提供了一种电子设备,包括:存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行上述第一方面提供的接口调用方法。第四方面,本申请实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述第一方面提供的接口调用方法。本申请实施例提供的一种接口调用方法、装置、电子设备及存储介质,通过获取服务请求,该服务请求用于调用软件开发工具包SDK的与服务请求对应的服务接口,然后获取与该服务接口对应的动态代理类。其中,该动态代理类被预先根据该服务接口的调用方法进行实例化,以保证该服务接口被调用前SDK被初始化。最后根据该动态代理类执行对该服务接口的调用。从而实现利用动态代理机制,代理SDK服务接口的调用方法,以保证SDK服务接口被调用前,SDK的初始化接口已经执行完成。通过这种方式,SDK的调用方无需再考虑SDK初始化的接口,直接调用服务接口即可,保证了SDK的执行时序,优化了SDK调用方的代码结构。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了本申请一个实施例提供的接口调用方法的流程示意图。图2示出了本申请另一个实施例提供的接口调用方法的流程示意图。图3示出了图2中的步骤S230的一种流程示意图。图4示出了图3中的步骤S233的一种流程示意图。图5示出了本申请实施例提供的一种接口调用方法的执行流程示意图。图6示出了本申请实施例提供的一种接口调用方法的程序结构图图7示出了本申请实施例提供的一种接口调用装置的模块框图。图8示出了本申请实施例提供的一种电子设备的结构框图。图9示出了本申请实施例的用于保存或者携带实现根据本申请实施例的接口调用方法的程序代码的存储单元。具体实施方式为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。在安卓(Android)项目开发过程中,除了产出线上应用的应用程序包(Androidapplicationpackage,apk)的项目外,还有很多项目是为了产出方便使用方(如研发人员)使用的SDK而存在的。通常情况下,SDK都会提供一个初始化接口给到使用方,用来对SDK进行初始化设置。这里的SDK初始化一般是进行一些资源的加载、变量的初始化等操作。除此之外,SDK还会提供一些功能性的服务接口,用来进行业务功能的调用。目前,为了保证业务时序的正常,大多数的SDK都会要求使用方在使用功能性的服务接口前,要保证SDK的初始化接口已经被调用完成。为了实现上述要求,现有的大部分研发,通常会选择在应用程序(Application,APP)的Application类(用来维护应用程序全局状态的基础类)的oncreate方法中进行SDK初始化的调用,但是这样做会增加APP的启动时间,降低用户使用体验。除此之外,也有研发选择在调用SDK的服务接口之前,通过添加判断方法,以先判断SDK的初始化接口是否被执行,如果没被执行先执行SDK的初始化。这样做虽然解决了上面所说的APP启动时间过长的问题,但是这种调用一个服务接口,添加一个判断方法代码的方式,会导致业务代码的冗余、重复,也不符合代码规范。基于上述缺陷,专利技术人经过长时间的研究后,提出了本申请实施例中的接口调用方法、装置、电子设备及存储介质,通过动态代理机制实现在调用SDK的服务接口之前,SDK的初始化状态已完成,减少了代码的冗余和重复,提高了代码的可维护性。请参阅图1,图1示出了本申请实施例提供的一种接口调用方法的流程示意图,可应用于电子设备。在具体的实施例中,接口调用方法可应用于如图7所示的接口调用装置400以及图8所示的电子设备100。下面将针对图1所示的流程进行详细的阐述。该接口调用方法可以包括以下步骤:步骤S110:获取服务请求,所述服务请求用于调用软件开发工具包SDK的与所述服务请求对应的服务接口。在一些实施例中,上述服务请求可以是请求实现一个服务功能时对应生成的请求指令。电子设备在获取到该服务请求时,可以从软件开发工具包SDK提供的所有服务接口中,查找与该服务请求对应的服务接口。作为一种方式,电子设备可以根据服务请求,确定请求的服务功能,然后从所有服务接口中获取用于实现该服务功能的服务接口。在一些实施例中,服务接口可以是SDK对外暴露出来的接口,供调用方进行调用,以实现该服务接口对应的服务功能。SDK可以包括一个服务接口,也可以包括多个服务接口,每个服务接口可以对应一种服务功能。在一些实施例中,服务接口也可以理解为一个可以实现对应的服务功能,而又无需访问源码,或理解内部执行逻辑的访问路径或访问通道,如方法的名称test()。在一些实施例中,上述服务请求可以是由客户端进程所在设备的用户通过与设备的交互操作发出。作为一种实施方式,该服务请求可以基于对SDK的任一服务接口对应的插件进行的交互操作触发。具体地,对于本文档来自技高网
...

【技术保护点】
1.一种接口调用方法,其特征在于,所述方法包括:/n获取服务请求,所述服务请求用于调用软件开发工具包SDK的与所述服务请求对应的服务接口;/n获取与所述服务接口对应的动态代理类,所述动态代理类被预先根据所述服务接口的调用方法进行实例化,以保证所述服务接口被调用前所述SDK被初始化;/n根据所述动态代理类执行对所述服务接口的调用。/n

【技术特征摘要】
1.一种接口调用方法,其特征在于,所述方法包括:
获取服务请求,所述服务请求用于调用软件开发工具包SDK的与所述服务请求对应的服务接口;
获取与所述服务接口对应的动态代理类,所述动态代理类被预先根据所述服务接口的调用方法进行实例化,以保证所述服务接口被调用前所述SDK被初始化;
根据所述动态代理类执行对所述服务接口的调用。


2.根据权利要求1所述的方法,其特征在于,在所述获取服务请求之前,所述方法还包括:
获取服务接口,所述服务接口于SDK初始化后调用;
创建与所述服务接口对应的动态代理类;
根据所述服务接口的调用方法,对所述动态代理类进行实例化。


3.根据权利要求2所述的方法,其特征在于,在所述获取服务请求之前,所述方法还包括:
注册所述服务接口的接口类,所述接口类用于实现对所述服务接口的调用;
注册与所述接口类对应的实现类,所述实现类包括实现所述服务接口对应功能的逻辑操作;
所述根据所述服务接口的调用方法,对所述动态代理类进行实例化,包括:
根据所述逻辑操作以及SDK初始化方法,对所述动态代理类进行实例化,实例化后的所述动态代理类用于根据所述SDK初始化方法对所述SDK进行初始化后,调用所述接口类以执行所述逻辑操作。


4.根据权利要求3所述的方法,其特征在于,所述根据所述SDK初始化方法对所述SDK进行初始化,包括:
检测所述SDK初始化是否已完成;
当检测到所述SDK初始化未完成时,检测所述SDK初始化是否处于执行过程中;
当检测到所述SDK初始化处于执行过程中时,在所述SDK初始化完成时,调用所述接口类以执行所述逻辑操作;
当检测到所述SDK初始化未处于执行过程中时,调用SDK初始化方法,并在所述SDK初始化完成时,调用所述接口类以执行所述逻辑操作。


5.根据权利要求4所述的方法,其特征在于,所述当检测到所述SDK初始化处于...

【专利技术属性】
技术研发人员:王斐航
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1