发明内容
基于此,有必要针对上述技术问题,提供一种能够提高开发效率的软件开发工具包调用方法、装置、计算机设备和存储介质。
一种软件开发工具包调用方法,所述方法包括:
通过所述适配器提供的调用接口接收目标应用程序发送的调用指令,所述调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,所述调用指令中携带目标工具包信息;
根据所述调用指令,确定所述目标应用程序所处的宿主所属的目标环境类别;
若所述目标环境类别的宿主配置有与所述目标工具包信息对应的专用工具包,则通过所述目标环境类别对应的专用接口调用所述专用工具包,所述专用工具包为所述目标环境类别的宿主中的应用程序专用的工具包;
当所述专用工具包调用成功时,向所述目标应用程序返回所述专用工具包的调用结果。
在其中一个实施例中,所述根据所述调用指令,确定所述目标应用程序所处的宿主所属的目标环境类别,包括:
根据所述调用指令,获取所述目标应用程序所处的宿主的用户代理信息;
从所述用户代理信息中得到所述目标应用程序所处的宿主的标识;
根据所述目标应用程序所处的宿主的标识,确定所述目标应用程序所处的宿主所属的目标环境类别。
在其中一个实施例中,所述方法还包括:
在所述目标环境类别的宿主所配工具包的名单中搜索与所述目标工具包信息对应的专用工具包;
若搜索到所述专用工具包,则判定所述目标环境类别的宿主配置有所述专用工具包;
若搜索不到所述专用工具包,则判定所述目标环境类别的宿主未配置所述专用工具包。
在其中一个实施例中,所述方法还包括:
在通过所述目标环境类别对应的专用接口调用专用工具包之前,在所述名单中获取所述目标环境类别对应的专用接口。
在其中一个实施例中,所述方法还包括:
若所述目标环境类别的宿主未配置所述专用工具包,则通过通用接口调用通用工具包,所述通用工具包为各种应用环境类别的宿主中的应用程序通用的工具包;
当所述通用工具包调用成功时,向所述目标应用程序返回所述通用工具包的调用结果。
在其中一个实施例中,所述方法还包括:
若所述专用工具包调用失败,或者所述通用工具包调用失败,则向所述目标应用程序返回错误信息。
在其中一个实施例中,所述调用指令为所述目标应用程序在加载完成所述目标应用程序所处的宿主配置的所有工具包后触发生成的指令。
一种软件开发工具包调用装置,所述装置包括:
接收模块,用于通过适配器提供的调用接口接收目标应用程序发送的调用指令,所述调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,所述调用指令中携带目标工具包信息;
确定模块,用于根据所述调用指令,确定所述目标应用程序所处的宿主所属的目标环境类别;
调用模块,用于若所述目标环境类别的宿主配置有与所述目标工具包信息对应的专用工具包,则通过所述目标环境类别对应的专用接口调用所述专用工具包,所述专用工具包为所述目标环境类别的宿主中的应用程序专用的工具包;
返回模块,用于当所述专用工具包调用成功时,向所述目标应用程序返回所述专用工具包的调用结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
通过所述适配器提供的调用接口接收目标应用程序发送的调用指令,所述调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,所述调用指令中携带目标工具包信息;
根据所述调用指令,确定所述目标应用程序所处的宿主所属的目标环境类别;
若所述目标环境类别的宿主配置有与所述目标工具包信息对应的专用工具包,则通过所述目标环境类别对应的专用接口调用所述专用工具包,所述专用工具包为所述目标环境类别的宿主中的应用程序专用的工具包;
当所述专用工具包调用成功时,向所述目标应用程序返回所述专用工具包的调用结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
通过所述适配器提供的调用接口接收目标应用程序发送的调用指令,所述调用接口用于与各种应用环境类别的宿主进行指令通信,所述调用指令中携带目标工具包信息;
根据所述调用指令,确定所述目标应用程序所处的宿主所属的目标环境类别;
若所述目标环境类别的宿主配置有与所述目标工具包信息对应的专用工具包,则通过所述目标环境类别对应的专用接口调用所述专用工具包,所述专用工具包为所述目标环境类别的宿主中的应用程序专用的工具包;
当所述专用工具包调用成功时,向所述目标应用程序返回所述专用工具包的调用结果。
上述软件开发工具包调用方法、装置、计算机设备和存储介质,通过适配器提供调用接口,调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,目标应用程序可以向适配器发送调用指令。调用指令中携带目标工具包信息,目标应用程序可以通过适配器调用目标工具包。适配器通过调用接口接收到目标应用程序发送的调用指令,可以将调用指令作为触发信号,确定目标应用程序所处的宿主所属的目标环境类别。如果目标环境类别的宿主配置有与目标工具包信息对应的专用工具包,则适配器可以通过环境类别对应的专用接口调用这个环境类别的宿主中的应用程序专用的专用工具包,并在专用工具包调用成功时,向目标应用程序返回专用工具包的调用结果。整个过程主要由适配器完成,目标应用程序只需要向适配器发送调用指令,即可接收到适配器返回的调用结果。由于适配器接收调用指令的调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,与目标应用程序所处的宿主所属的环境类别无关,因此不同环境类别的宿主中运行的应用程序都可以向统一的调用接口发送调用指令,利用适配器调用目标工具包,从而有效提高开发效率。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的软件开发工具包调用方法,可以应用于如图1所示的应用环境中。其中,不同环境类别的宿主102配置有相同的专用工具包104,如IOS***和安卓***都配有获取位置信息的SDK、拍照的SDK、选择视频的SDK、设置页面标题的SDK等。同一个专用工具包104在不同环境类别的宿主102中的调用接口不同,如获取位置信息的SDK在IOS***和安卓***中通过不同的API调用。
不同环境类别的宿主102中运行有相同的应用程序106,如在IOS***和安卓***中都运行招联金融APP、支付宝APP、微信APP等。同一个应用程序106在不同环境类别的宿主102都通过适配器108调用所处的宿主102配置的同一个专用工具包104。
具体地,适配器提供有调用接口,调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信。目标应用程序可以通过调用接口对适配器进行调用,向适配器发送调用指令,调用指令中携带目标工具包信息。适配器通过调用接口接收目标应用程序发送的调用指令,并根据调用指令,确定目标应用程序所处的宿主所属的目标环境类别。若目标环境类别的宿主配置有与目标工具包信息对应的专用工具包,则适配器通过目标环境类别对应的专用接口调用专用工具包,专用工具包为目标环境类别的宿主中的应用程序专用的工具包。当专用工具包调用成功时,适配器向目标应用程序返回专用工具包的调用结果。其中,目标应用程序可以但不限于是各种应用程序、公众号、小程序、快应用等,如支付宝、微信。适配器是一种软件运行环境中配置的接口转换器,可以由Madp(Mobile ApplicationDevelopment Platform,移动应用开发平台)项目提供。Madp项目中汇集有众多宿主环境的SDK。目标应用程序和适配器承载在同一个计算机设备上,计算机设备可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和服务器。
在一个实施例中,如图2所示,提供了一种软件开发包调用方法,以该方法应用于图1中的适配器为例进行说明,包括以下步骤:
步骤S202,通过适配器提供的调用接口接收目标应用程序发送的调用指令。
其中,调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,调用指令中携带目标工具包信息。目标应用程序通过调用适配器提供的调用接口,向适配器发送调用指令。调用接口接收到调用指令,即适配器通过调用接口接收到目标应用程序发送的调用指令,触发适配器动作。
具体地,适配器提供调用接口,调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,因此各种环境类别的宿主中运行的应用程序都可以通过适配器提供的统一接口调用适配器,向适配器发送调用指令。适配器通过适配器提供的调用接口接收目标应用程序发送的调用指令,调用指令中携带目标工具包信息,适配器可以通过目标工具包提供的调用接口调用目标工具包。
例如,目标应用程序调用适配器提供的Madp.A接口,向适配器发送调用目标工具包A的调用指令,可以使适配器通过宿主提供的SDK.A接口调用目标工具包A。其中,SDK.A接口由宿主提供,不同环境类别的宿主提供的SDK.A接口有可能不同,但是Madp.A接口由适配器提供,与宿主的环境类别无关,因此适配器提供的Madp.A接口在不同环境类别的宿主中是一致的。
又如,目标应用程序调用适配器提供的Madp.B接口,向适配器发送调用目标工具包B的调用指令,可以使适配器通过宿主提供的SDK.B接口调用目标工具包B。其中,SDK.B接口由宿主提供,不同环境类别的宿主提供的SDK.B接口有可能不同,但是Madp.B接口由适配器提供,与宿主的环境类别无关,因此适配器提供的Madp.B接口在不同环境类别的宿主中是一致的。
本实施例中,适配器提供调用接口,调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,不同环境类别的宿主都可以通过调用适配器提供的调用接口,向适配器发送调用指令。适配器通过调用接口接收到目标应用程序发送的调用指令,调用指令中携带目标工具包信息,可以调用目标工具包,实现目标工具包的调用。而且针对不同环境类别的宿主中运行的应用程序,都是调用适配器提供的同一个调用接口,与分别调用各自所处宿主所属的目标环境类别对应的调用接口相比,开发效率得到有效提升。
步骤S204,根据调用指令,确定目标应用程序所处的宿主所属的目标环境类别。
其中,目标应用程序所处的宿主为软件当前的应用环境,目标环境类别为目标应用程序所处的宿主所属的类别。例如,IOS***、安卓***等。
宿主中有封装各种基础功能的SDK,宿主中运行的应用程序可以通过API对SDK中封装好的功能进行调用。属于同一环境类别的宿主中运行的应用程序调用同一SDK的API相同,属于不同环境类别的宿主种运行的应用程序调用同一SDK的API可能不同。
例如,两个用户都在使用各自终端上的招联金融APP,一个用户在招联金融APP上进行注册申请,另一个用户在招联金融APP上更新个人信息,注册申请和个人信息更新都需要拍摄用户图像,因此两个用户使用的招联金融APP,都会调用拍照的SDK的API。但是一个用户的终端使用的IOS***,另一个用户的终端使用的安卓***,两个用户的终端中招联金融APP所处的宿主所属的环境类别不同,因此调用拍照的SDK的API不同。
又如,一个用户在使用终端上的微信APP分享美食,另一个用户在使用终端上的支付宝APP推荐美食,分享美食和推荐美食都需要获取用户位置,因此微信APP和支付宝APP都会调用获取位置信息的SDK的API。但是两个用户的终端使用的安卓***,微信APP和支付宝APP所处的宿主所属的环境类别相同,因此调用获取位置信息的SDK的API相同。
具体地,适配器向目标应用程序所处的宿主发送信息获取请求,索取目标应用程序所处宿主的宿主信息。目标应用程序所处宿主接收到适配器发送的信息获取请求,将自身信息发送给适配器。适配器接收目标应用程序所处宿主发送的宿主信息,并根据宿主信息确定目标应用程序所处宿主所属的目标环境类别。
本实施例中,调用指令触发适配器确定目标应用程序所处的宿主所属的目标环境类别,可以针对目标应用程序所处的宿主所属的目标应用类别的不同,分别采用不同的API调用目标工具包,满足不同环境类别的宿主中运行的应用程序对工具包的调用需要。
步骤S206,若目标环境类别的宿主配置有与目标工具包信息对应的专用工具包,则通过目标环境类别对应的专用接口调用专用工具包。
其中,专用工具包为目标环境类别的宿主中的应用程序专用的工具包。专用工具包是宿主配置的工具包,只有相同环境类别的宿主中的应用程序才能使用,即专用工具包是目标环境类别的宿主配置、目标环境类别的宿主中运行的应用程序使用的工具包。
若目标环境类别的宿主配置有与目标工具包信息对应的专用工具包,则适配器可以调用目标环境类别的宿主配置的专用工具包,实现目标工具包的调用。具体调用时,适配器调用目标环境类别对应的专用接口,实现对专用工具包的调用。
具体地,根据目标应用程序所处的宿主所属的目标环境类别,可以确定目标环境类别的宿主配置的专用工具包。如果目标环境类别的宿主配置的专用工具包中存在与目标工具包信息对应的专用工具包,则可以确定目标环境类别的宿主配置有与目标工具包信息对应的专用工具包。如果目标环境类别的宿主配置的专用工具包中没有与目标工具包信息对应的专用工具包,则可以确定目标环境类别的宿主未配置与目标工具包信息对应的专用工具包。
若目标环境类别的宿主配置有与目标工具包信息对应的专用工具包,则适配器直接调用这个专用工具包对应的专用接口即可实现专用工具包的调用。
本实施例中,由于属于相同环境类别的宿主配置的专用工具包的调用接口相同,属于不同环境类别的宿主配置的专用工具包的调用接口不同,因此宿主配置的专用工具包与宿主所属的环境类别一一对应,进而专用工具包的调用接口与宿主所属的环境类别一一对应。由于调用专用工具包对应的专用接口即可实现专用工具包的调用,因此若目标环境类别的宿主配置有与目标工具包信息对应的专用工具包,则通过目标环境类别对应的专用接口调用专用工具包,实现目标工具包的调用。
步骤S208,当专用工具包调用成功时,向目标应用程序返回专用工具包的调用结果。
其中,专用工具包的调用结果为专用工具包调用之后得到的结果。例如,调用拍照的SDK,调用结果为拍摄的用户图像。又如,调用获取位置信息的SDK,调用结果为当前的位置坐标。
具体地,适配器调用专用工具包,专用工具包将调用结果反馈给适配器,适配器将调用结果转发给目标应用程序。
本实施例中,通过在专用工具包调用成功时向目标应用程序返回专用工具包的调用结果,可以实现目标应用程序调用目标工具包的功能。
上述软件开发工具包调用方法中,通过适配器提供调用接口,调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,目标应用程序可以向适配器发送调用指令。调用指令中携带目标工具包信息,目标应用程序可以通过适配器调用目标工具包。适配器通过调用接口接收到目标应用程序发送的调用指令,可以将调用指令作为触发信号,确定目标应用程序所处的宿主所属的目标环境类别。如果目标环境类别的宿主配置有与目标工具包信息对应的专用工具包,则适配器可以通过环境类别对应的专用接口调用这个环境类别的宿主中的应用程序专用的专用工具包,并在专用工具包调用成功时,向目标应用程序返回专用工具包的调用结果。整个过程主要由适配器完成,目标应用程序只需要向适配器发送调用指令,即可接收到适配器返回的调用结果。由于适配器接收调用指令的调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,与目标应用程序所处的宿主所属的环境类别无关,因此不同环境类别的宿主中运行的应用程序都可以向统一的调用接口发送调用指令,利用适配器调用目标工具包,从而有效提高开发效率。
在一个实施例中,根据调用指令,确定目标应用程序所处的宿主所属的目标环境类别,包括:根据调用指令,获取目标应用程序所处的宿主的用户代理信息;从用户代理信息中得到目标应用程序所处的宿主的标识;根据目标应用程序所处的宿主的标识,确定目标应用程序所处的宿主所属的目标环境类别。
其中,用户代理信息(User Agent)是一个特殊字符串头,包括宿主的浏览器类型、操作***、浏览器内核、运行的应用程序等信息。
具体地,适配器将调用指令作为触发信号,向目标应用程序所处的宿主发送用户代理信息的获取请求。目标应用程序所处的宿主根据获取请求,向适配器反馈用户代理信息。用户代理信息包括宿主信息,适配器从用户代理信息中提取出目标应用程序所处的宿主的标识,进而确定目标应用程序所处的宿主所属的目标环境类别。
本实施例中,调用指令触发适配器获取目标应用程序所处的宿主的用户代理信息,可以从用户代理信息中得到目标应用程序所处的宿主的标识,进而根据目标应用程序所处的宿主的标识确定目标应用程序所处的宿主所属的目标环境类别,得到目标应用程序所处的宿主所属的目标环境类别,以根据目标应用程序所处的宿主所属的目标环境类别,调用对应的专用接口实现专用工具包的调用。
在一个实施例中,该方法还包括:在目标环境类别的宿主所配工具包的名单中搜索与目标工具包信息对应的专用工具包;若搜索到专用工具包,则判定目标环境类别的宿主配置有专用工具包;若搜索不到专用工具包,则判定目标环境类别的宿主未配置专用工具包。
其中,针对每个环境类别,建立宿主配置的工具包的名单,形成各个环境类别的宿主所配工具包的名单。名单上的各个工具包为所针对同一环境类别的宿主配置的工具包。如果名单上有某个工具包,则说明对应环境类别的宿主配置有这个工具包;如果名单上没有某个工具包,则说明对应环境类别的宿主未配置这个工具包。
具体地,在确定目标应用程序所处的宿主所属的目标环境类别之后,获取目标环境类别的宿主所配工具包的名单。将获取的名单中的工具包与目标工具包信息对应的专用工具包一一对比,如果获取的名单中的一个工具包与目标工具包信息对应的专用工具包相同,则说明在获取的名单中搜索到专用工具包,此时可以判定目标环境类别的宿主配置有专用工具包;如果获取的名单中的所有工具包都与目标工具包信息对应的专用工具包不同,则说明在获取的名单中搜索不到专用工具包,此时判定目标环境类别的宿主未配置专用工具包。
本实施例中,适配器在目标环境类别的宿主所配工具包的名单中搜索与目标工具包信息对应的专用工具包,即可根据搜索结果判定目标环境类别的宿主是否配置专用工具包,实现简单方便。
在一个实施例中,该方法还包括:在通过目标环境类别对应的专用接口调用专用工具包之前,在名单中获取目标环境类别对应的专用接口。
其中,针对每个环境类别,建立宿主配置的工具包的名单,形成各个环境类别的宿主所配工具包的名单。名单中除了专用工具包的标识,还对应配有调用专用工具包的专用接口。
具体地,如果在目标环境类别的宿主所配工具包的名单中搜索到与目标工具包信息对应的专用工具包,则获取搜索到的专用工具包对应的专用接口,即为目标环境类别对应的专用接口。
本实施例中,适配器在名单中获取目标环境类别对应的专用接口,即可通过调用这个专用接口实现对专用工具包的调用,实现简单方便。
在一个实施例中,该方法还包括:若目标环境类别的宿主未配置与目标工具包信息对应的专用工具包,则通过通用接口调用通用工具包;当通用工具包调用成功时,向目标应用程序返回通用工具包的调用结果。
其中,通用工具包为各种环境类别的宿主中的应用程序通用的工具包。通用工具包是适配器配置的工具包,适用于所有环境类别的宿主中运行的应用程序使用,因此通用工具包是包括目标环境类别在内的各种环境类别的宿主中运行的应用程序使用的工具包。
通用接口为通用工具包的调用接口。各种环境类别的宿主中运行的应用程序通过调用通用接口,即可实现对通用工具包的调用。
通用工具包的调用结果为通用工具包调用之后得到的结果。例如,调用拍照的SDK,调用结果为拍摄的用户图像。又如,调用获取位置信息的SDK,调用结果为当前的位置坐标。
具体地,在获取目标环境类别的宿主所配工具包的名单之后,将获取的名单中的工具包与目标工具包信息对应的专用工具包一一对比,如果获取的名单中的所有工具包都与目标工具包信息对应的专用工具包不同,则说明在获取的名单中搜索不到专用工具包,此时判定目标环境类别的宿主未配置专用工具包。如果目标环境类别的宿主未配置专用工具包,则适配器调用通用接口,实现通用工具包的调用。适配器调用通用工具包之后,通用工具包将调用结果反馈给适配器,适配器将调用结果转发给目标应用程序。
本实施例中,适配器在目标环境类别的宿主未配置专用工具包时通过通用接口调用通用工具包,并在通用工具包调用成功时向目标应用程序返回通用工具包的调用结果,可以在目标应用程序所处的宿主未配置专用工具包时利用通用工具包进行兜底处理,保证能够调用到目标工具包。
在一个实施例中,该方法还包括:若专用工具包调用失败,或者通用工具包调用失败,则向目标应用程序返回错误信息。
其中,错误信息为表示目标工具包调用失败的信息,如错误提示信息。
具体地,适配器调用专用工具包或者通用工具包调用失败时,专用工具包或者通用工具包会向适配器反馈错误信息,适配器将错误信息转发给目标应用程序。
本实施例中,适配器在专用工具包调用或者通用工具包调用失败时,向目标应用程序返回错误信息,以便目标应用程序及时了解调用情况,能够进行相应的处理。
在一个实施例中,向目标应用程序返回日志。
在一个实施例中,调用指令为目标应用程序在加载完成目标应用程序所处的宿主配置的所有工具包后触发生成的指令。
其中,宿主配置的工具包在加载完成之后才能调用。先加载完成目标应用程序所处的宿主配置的所有工具包,再生成调用指令,此时调用指令为目标应用程序在加载完成目标应用程序所处的宿主配置的所有工具包后触发生成的指令,可以保证调用速度,避免调用过程中加载相应工具包而减慢调用速度,实现工具包的即时调用。
具体地,在应用程序、小程序等宿主加载的过程中,将目标应用程序所处的宿主配置的所有工具包提前加载,这样目标应用程序通过调用指令调用目标工具包时,适配器可以即时调用。
本实施例中,调用指令为目标应用程序在加载完成目标应用程序所处的宿主配置的所有工具包后触发生成的指令,目标应用程序通过调用指令调用目标工具包时,目标工具包已经完成加载,可以即时调用,提升调用速度。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种软件开发包调用装置,包括:接收模块301、确定模块302、调用模块303和返回模块304,其中:
接收模块301,用于通过适配器提供的调用接口接收目标应用程序发送的调用指令,调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,调用指令中携带目标工具包信息。
确定模块302,用于根据调用指令,确定目标应用程序所处的宿主所属的目标环境类别。
调用模块303,用于若目标环境类别的宿主配置有与目标工具包信息对应的专用工具包,则通过目标环境类别对应的专用接口调用专用工具包,专用工具包为目标环境类别的宿主中的应用程序专用的工具包。
返回模块304,用于当专用工具包调用成功时,向目标应用程序返回专用工具包的调用结果。
上述软件开发工具包调用装置,通过适配器提供调用接口,调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,目标应用程序可以向适配器发送调用指令。调用指令中携带目标工具包信息,目标应用程序可以通过适配器调用目标工具包。适配器通过调用接口接收到目标应用程序发送的调用指令,可以将调用指令作为触发信号,确定目标应用程序所处的宿主所属的目标环境类别。如果目标环境类别的宿主配置有与目标工具包信息对应的专用工具包,则适配器可以通过环境类别对应的专用接口调用这个环境类别的宿主中的应用程序专用的专用工具包,并在专用工具包调用成功时,向目标应用程序返回专用工具包的调用结果。整个过程主要由适配器完成,目标应用程序只需要向适配器发送调用指令,即可接收到适配器返回的调用结果。由于适配器接收调用指令的调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,与目标应用程序所处的宿主所属的环境类别无关,因此不同环境类别的宿主中运行的应用程序都可以向统一的调用接口发送调用指令,利用适配器调用目标工具包,从而有效提高开发效率。
在一个实施例中,确定模块302包括获取单元、提取单元和确定单元。获取单元,用于根据调用指令,获取目标应用程序所处的宿主的用户代理信息。提取单元,用于从用户代理信息中得到目标应用程序所处的宿主的标识。确定单元,用于根据目标应用程序所处的宿主的标识,确定目标应用程序所处的宿主所属的目标环境类别。
在一个实施例中,该装置还包括搜索模块和判定模块。搜索模块,用于在目标环境类别的宿主所配工具包的名单中搜索与目标工具包信息对应的专用工具包。判定模块,用于若搜索到专用工具包,则判定目标环境类别的宿主配置有专用工具包;若搜索不到专用工具包,则判定目标环境类别的宿主未配置专用工具包。
在一个实施例中,该装置还包括获取模块。获取模块,用于在通过目标环境类别对应的专用接口调用专用工具包之前,在名单中获取目标环境类别对应的专用接口。
在一个实施例中,调用模块303,还用于若目标环境类别的宿主未配置与目标工具包信息对应的专用工具包,则通过通用接口调用通用工具包,通用工具包为各种环境类别的宿主中的应用程序通用的工具包。返回模块304,还用于当通用工具包调用成功时,向目标应用程序返回通用工具包的调用结果。
在一个实施例中,返回模块304,还用于若专用工具包调用失败,或者通用工具包调用失败,则向目标应用程序返回错误信息。
在一个实施例中,调用指令为目标应用程序在加载完成目标应用程序所处的宿主配置的所有工具包后触发生成的指令。
关于软件开发工具包调用装置的具体限定可以参见上文中对于软件开发工具包调用方法的限定,在此不再赘述。上述软件开发工具包调用装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图4所示。该计算机设备包括通过***总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种软件开发工具包调用方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:通过适配器提供的调用接口接收目标应用程序发送的调用指令,调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,调用指令中携带目标工具包信息;根据调用指令,确定目标应用程序所处的宿主所属的目标环境类别;若目标环境类别的宿主配置有与目标工具包信息对应的专用工具包,则通过目标环境类别对应的专用接口调用专用工具包,专用工具包为目标环境类别的宿主中的应用程序专用的工具包;当专用工具包调用成功时,向目标应用程序返回专用工具包的调用结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据调用指令,获取目标应用程序所处的宿主的用户代理信息;从用户代理信息中得到目标应用程序所处的宿主的标识;根据目标应用程序所处的宿主的标识,确定目标应用程序所处的宿主所属的目标环境类别。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在目标环境类别的宿主所配工具包的名单中搜索与目标工具包信息对应的专用工具包;若搜索到专用工具包,则判定目标环境类别的宿主配置有专用工具包;若搜索不到专用工具包,则判定目标环境类别的宿主未配置专用工具包。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在通过目标环境类别对应的专用接口调用专用工具包之前,在名单中获取目标环境类别对应的专用接口。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若目标环境类别的宿主未配置与目标工具包信息对应的专用工具包,则通过通用接口调用通用工具包,通用工具包为各种环境类别的宿主中的应用程序通用的工具包;当通用工具包调用成功时,向目标应用程序返回通用工具包的调用结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若专用工具包调用失败,或者通用工具包调用失败,则向目标应用程序返回错误信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:调用指令为目标应用程序在加载完成目标应用程序所处的宿主配置的所有工具包后触发生成的指令。
上述计算机设备,通过适配器提供调用接口,调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,目标应用程序可以向适配器发送调用指令。调用指令中携带目标工具包信息,目标应用程序可以通过适配器调用目标工具包。适配器通过调用接口接收到目标应用程序发送的调用指令,可以将调用指令作为触发信号,确定目标应用程序所处的宿主所属的目标环境类别。如果目标环境类别的宿主配置有与目标工具包信息对应的专用工具包,则适配器可以通过环境类别对应的专用接口调用这个环境类别的宿主中的应用程序专用的专用工具包,并在专用工具包调用成功时,向目标应用程序返回专用工具包的调用结果。整个过程主要由适配器完成,目标应用程序只需要向适配器发送调用指令,即可接收到适配器返回的调用结果。由于适配器接收调用指令的调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,与目标应用程序所处的宿主所属的环境类别无关,因此不同环境类别的宿主中运行的应用程序都可以向统一的调用接口发送调用指令,利用适配器调用目标工具包,从而有效提高开发效率。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:通过适配器提供的调用接口接收目标应用程序发送的调用指令,调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,调用指令中携带目标工具包信息;根据调用指令,确定目标应用程序所处的宿主所属的目标环境类别;若目标环境类别的宿主配置有与目标工具包信息对应的专用工具包,则通过目标环境类别对应的专用接口调用专用工具包,专用工具包为目标环境类别的宿主中的应用程序专用的工具包;当专用工具包调用成功时,向目标应用程序返回专用工具包的调用结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据调用指令,获取目标应用程序所处的宿主的用户代理信息;从用户代理信息中得到目标应用程序所处的宿主的标识;根据目标应用程序所处的宿主的标识,确定目标应用程序所处的宿主所属的目标环境类别。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在目标环境类别的宿主所配工具包的名单中搜索与目标工具包信息对应的专用工具包;若搜索到专用工具包,则判定目标环境类别的宿主配置有专用工具包;若搜索不到专用工具包,则判定目标环境类别的宿主未配置专用工具包。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在通过目标环境类别对应的专用接口调用专用工具包之前,在名单中获取目标环境类别对应的专用接口。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若目标环境类别的宿主未配置与目标工具包信息对应的专用工具包,则通过通用接口调用通用工具包,通用工具包为各种环境类别的宿主中的应用程序通用的工具包;当通用工具包调用成功时,向目标应用程序返回通用工具包的调用结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若专用工具包调用失败,或者通用工具包调用失败,则向目标应用程序返回错误信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:调用指令为目标应用程序在加载完成目标应用程序所处的宿主配置的所有工具包后触发生成的指令。
上述存储介质,通过适配器提供调用接口,调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,目标应用程序可以向适配器发送调用指令。调用指令中携带目标工具包信息,目标应用程序可以通过适配器调用目标工具包。适配器通过调用接口接收到目标应用程序发送的调用指令,可以将调用指令作为触发信号,确定目标应用程序所处的宿主所属的目标环境类别。如果目标环境类别的宿主配置有与目标工具包信息对应的专用工具包,则适配器可以通过环境类别对应的专用接口调用这个环境类别的宿主中的应用程序专用的专用工具包,并在专用工具包调用成功时,向目标应用程序返回专用工具包的调用结果。整个过程主要由适配器完成,目标应用程序只需要向适配器发送调用指令,即可接收到适配器返回的调用结果。由于适配器接收调用指令的调用接口用于与各种环境类别的宿主中运行的应用程序进行指令通信,与目标应用程序所处的宿主所属的环境类别无关,因此不同环境类别的宿主中运行的应用程序都可以向统一的调用接口发送调用指令,利用适配器调用目标工具包,从而有效提高开发效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。