CN109408256B - 应用调用方法和装置 - Google Patents
应用调用方法和装置 Download PDFInfo
- Publication number
- CN109408256B CN109408256B CN201811207560.9A CN201811207560A CN109408256B CN 109408256 B CN109408256 B CN 109408256B CN 201811207560 A CN201811207560 A CN 201811207560A CN 109408256 B CN109408256 B CN 109408256B
- Authority
- CN
- China
- Prior art keywords
- external application
- calling
- application
- sdk
- target external
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种应用调用方法和装置,其中方法包括:接收用户针对当前运行的应用程序的用户输入,确定用户输入调用的目标外部应用和目标外部应用的被调用服务;根据目标外部应用和目标外部应用的被调用服务,在应用程序的资源配置包中查找目标外部应用调用组件;其中,资源配置包包括多个用于调用对应外部应用的对应应用服务的SDK的外部应用调用组件;调用目标外部应用调用组件,以调用目标外部应用的被调用服务的SDK;通过目标外部应用的被调用服务的SDK,调用目标外部应用的被调用服务。通过本实施例,针对应用程序在运行过程中需要调用多个外部应用程序的情况,能够降低该应用程序开发的难度,提高应用程序的开发效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用调用方法和装置。
背景技术
目前,为丰富用户终端的功能,用户终端内的应用程序在运行时,通常可以调用外部应用程序。比如,应用程序A在运行时,调用外部的应用程序B,以将用户浏览的内容分享到应用程序B的平台中,或者,应用程序A在运行时,调用外部的应用程序C,以利用用户在应用程序C中的登陆信息登陆应用程序A。
考虑到一个应用程序在运行过程中可能需要调用多个外部应用程序的情况,有必要提供一种技术方案,以降低该应用程序开发的难度,提高应用程序的开发效率。
发明内容
本申请实施例的目的是提供一种应用调用方法和装置,针对应用程序在运行过程中需要调用多个外部应用程序的情况,能够降低该应用程序开发的难度,提高应用程序的开发效率。
为达到上述技术目的,本申请实施例是这样实现的:
第一方面,本申请实施例提供了一种应用调用方法,包括:
接收用户针对当前运行的应用程序的用户输入,确定所述用户输入调用的目标外部应用和所述目标外部应用的被调用服务;
根据所述目标外部应用和所述目标外部应用的被调用服务,在所述应用程序的资源配置包中查找目标外部应用调用组件;其中,所述资源配置包包括多个外部应用调用组件,所述外部应用调用组件用于调用对应外部应用的对应应用服务的软件开发工具包SDK;
调用所述目标外部应用调用组件,以调用所述目标外部应用的被调用服务的SDK;
通过所述目标外部应用的被调用服务的SDK,调用所述目标外部应用的被调用服务。
第二方面,本申请实施例提供了一种应用调用装置,包括:
接收单元,用于接收用户针对当前运行的应用程序的用户输入,确定所述用户输入调用的目标外部应用和所述目标外部应用的被调用服务;
查找单元,用于根据所述目标外部应用和所述目标外部应用的被调用服务,在所述应用程序的资源配置包中查找目标外部应用调用组件;其中,所述资源配置包包括多个外部应用调用组件,所述外部应用调用组件用于调用对应外部应用的对应应用服务的软件开发工具包SDK;
第一调用单元,用于调用所述目标外部应用调用组件,以调用所述目标外部应用的被调用服务的SDK;
第二调用单元,用于通过所述目标外部应用的被调用服务的SDK,调用所述目标外部应用的被调用服务。
第三方面,本申请实施例提供了一种应用调用设备,包括:存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如上述第一方面所述的应用调用方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现如上述第一方面所述的应用调用方法的步骤。
本申请实施例中,资源配置包中的多个外部应用调用组件,能够调用不同外部应用的不同应用服务的SDK,应用程序在调用目标外部应用的被调用服务时,首先在资源配置包中确定该被调用服务对应的目标外部应用调用组件,然后调用该目标外部应用调用组件,以调用目标外部应用的被调用服务的SDK,最后通过目标外部应用的被调用服务的SDK,调用目标外部应用的被调用服务,从而达到通过资源配置包,统一调用各个外部应用的效果。开发人员在开发应用程序时,无需在应用程序内放入各个应用服务的SDK,只需要在应用程序内开发资源配置包即可,从而降低了应用程序开发的难度,提高了应用程序的开发效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的应用调用方法的应用场景示意图;
图2为本申请一实施例提供的应用调用方法的流程示意图;
图3为本申请一实施例提供的应用程序的资源配置包的一种示意图;
图4为本申请一实施例提供的外部应用调用组件的一种示意图;
图5为本申请一实施例提供的调用Facebook登录服务的示意图;
图6为本申请一实施例提供的调用Google+登录服务的示意图;
图7为本申请一实施例提供的应用调用装置的示意图;
图8为本申请一实施例提供的应用调用设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
针对应用程序在运行过程中需要调用多个外部应用程序的情况,本申请实施例提供了一种应用调用方法和装置,能够降低应用程序开发的难度,提高应用程序的开发效率。本申请实施例提供的应用调用方法能够应用在用户终端侧,由用户终端执行,其中,用户终端包括但不限于手机、台式电脑、平板电脑等终端设备。
图1为本申请一实施例提供的应用调用方法的应用场景示意图,如图1所示,该应用场景包括用户终端100和服务器200,用户终端100能够与服务器200进行通信,从服务器200处获取应用程序安装包并运行,以安装应用程序。用户终端100安装应用程序后,能够运行该应用程序,该应用程序在运行过程中,能够通过本申请实施例提供的应用调用方法调用外部应用程序,以向用户提供相应的功能。
图2为本申请一实施例提供的应用调用方法的流程示意图,如图2所示,该流程包括:
步骤S202,接收用户针对当前运行的应用程序的用户输入,确定该用户输入调用的目标外部应用和目标外部应用的被调用服务;
步骤S204,根据目标外部应用和目标外部应用的被调用服务,在该应用程序的资源配置包中查找目标外部应用调用组件,其中,该资源配置包包括多个外部应用调用组件,外部应用调用组件用于调用对应外部应用的对应应用服务的软件开发工具包SDK;
步骤S206,调用目标外部应用调用组件,以调用目标外部应用的被调用服务的SDK;
步骤S208,通过目标外部应用的被调用服务的SDK,调用目标外部应用的被调用服务。
本申请实施例中,资源配置包中的多个外部应用调用组件,能够调用不同外部应用的不同应用服务的SDK,应用程序在调用目标外部应用的被调用服务时,首先在资源配置包中确定该被调用服务对应的目标外部应用调用组件,然后调用该目标外部应用调用组件,以调用目标外部应用的被调用服务的SDK,最后通过目标外部应用的被调用服务的SDK,调用目标外部应用的被调用服务,从而达到通过资源配置包,统一调用各个外部应用的效果。开发人员在开发应用程序时,无需在应用程序内放入各个应用服务的SDK,只需要在应用程序内开发资源配置包即可,从而降低了应用程序开发的难度,提高了应用程序的开发效率。
图3为本申请一实施例提供的应用程序的资源配置包的一种示意图,如图3所示,该资源配置包中,包括多个外部应用调用组件,如图3中所示的Facebook登录调用组件,用于调用Facebook的登录服务的SDK(Software Development Kit,软件开发包),Google+登录调用组件,用于调用Google+的登录服务的SDK,Facebook分享调用组件,用于调用Facebook的内容分享服务的SDK,Google+分享调用组件,用于调用Google+的内容分享服务的SDK。可见,通过资源配置包中的外部应用调用组件,能够调用对应外部应用的对应应用服务的SDK。
本申请实施例中,用户终端在启动应用程序后,首先加载资源配置包。比如,用户终端为安卓系统,用户终端在启动应用程序后,通过安卓中的dex类(或者java类反射)加载器,动态加载资源配置包到内存中。然后,用户终端可以对加载完成的资源配置包进行初始化。比如,用户终端为安卓系统,用户终端采用反射调用机制对资源配置包进行初始化。
然后,用户终端执行上述步骤S202,接收用户针对该应用程序的用户输入,该用户输入可以为登录输入、内容分享输入等。用户终端确定该用户输入调用的目标外部应用和目标外部应用的被调用服务。
比如,用户输入为登录Facebook的输入操作,则用户终端确定该用户输入调用的目标外部应用为Facebook,确定目标外部应用的被调用服务为Facebook的登录服务。
又如,用户输入为登录Google+的输入操作,则用户终端确定该用户输入调用的目标外部应用为Google+,确定目标外部应用的被调用服务为Google+的登录服务。
然后,用户终端执行上述步骤S204,根据目标外部应用和目标外部应用的被调用服务,在应用程序的资源配置包中查找目标外部应用调用组件。该步骤具体可以为:
获取目标外部应用的标识,根据目标外部应用的标识,在应用程序的资源配置包中查找与目标外部应用相对应的外部应用调用组件,其中,与目标外部应用相对应的外部应用调用组件的数量为多个,分别用于调用目标外部应用的各个应用服务的SDK;
获取目标外部应用的被调用服务的服务标识,根据该服务标识,在查找到的多个外部应用调用组件中,查找用于调用目标外部应用的被调用服务的SDK的目标外部应用调用组件。
具体地,首先获取目标外部应用的标识,如标识为“facebook”,根据该标识,在资源配置包中查找目标外部应用对应的外部应用调用组件。如图3所示,由于每个外部应用可以具有多个应用服务,因此每个外部应用可以对应多个外部应用调用组件,因此这里查找到的与目标外部应用相对应的外部应用调用组件的数量为多个,分别用于调用目标外部应用的各个应用服务的SDK。
比如,目标外部应用的标识为“facebook”,则在图3中的资源配置包中,能够查找到与“facebook”相对应的两个外部应用调用组件,分别为,Facebook登录调用组件和Facebook分享调用组件。
然后,获取目标外部应用的被调用服务的服务标识,比如,服务标识为“登录”或者“内容分享”,根据该服务标识,在查找到的多个外部应用调用组件中,查找用于调用目标外部应用的被调用服务的SDK的目标外部应用调用组件。
比如,查找到的外部应用调用组件包括Facebook登录调用组件和Facebook分享调用组件,服务标识为“登录”,则根据该服务标识,在查找到的多个外部应用调用组件中,查找到目标外部应用调用组件为Facebook登录调用组件。
在查找到目标外部应用调用组件后,由于外部应用调用组件用于调用对应外部应用的对应应用服务的SDK,因此用户终端通过上述步骤S206,调用目标外部应用调用组件,以调用目标外部应用的被调用服务的SDK。该步骤具体可以为:
调用目标外部应用调用组件的调用接口,以触发调用接口调用目标外部应用调用组件的SDK适配器;
通过目标外部应用调用组件的SDK适配器,调用目标外部应用的被调用服务的SDK。
图4为本申请一实施例提供的外部应用调用组件的一种示意图,如图4所示,外部应用调用组件包括调用接口和SDK适配器两部分,其中,调用接口为该组件的对外调用接口,SDK适配器能够调用相应的SDK,比如,外部应用调用组件为Facebook登录调用组件时,SDK适配器能够调用Facebook的登录服务的SDK,外部应用调用组件为Google+登录调用组件时,SDK适配器能够调用Google+的登录服务的SDK,外部应用调用组件为Facebook分享调用组件时,SDK适配器能够调用Facebook的内容分享服务的SDK,外部应用调用组件为Google+分享调用组件时,SDK适配器能够调用Google+的内容分享服务的SDK。
本实施例中,首先调用目标外部应用调用组件的调用接口,以触发该调用接口调用目标外部应用调用组件的SDK适配器,然后,通过目标外部应用调用组件的SDK适配器,调用目标外部应用的被调用服务的SDK。
能够理解,在调用目标外部应用的被调用服务的SDK之前,需要先加载目标外部应用的被调用服务的SDK。本实施例中,可以动态加载三方SDK,即在资源配置包里,反射调用三方SDK,将三方SDK加载到内存。
在一个实施例中,用户终端可以首先确定资源配置包能够调用的应用服务的SDK,并在加载资源配置包后,加载确定的SDK,从而方便步骤S206中调用目标外部应用的被调用服务的SDK。
在调用目标外部应用的被调用服务的SDK后,上述步骤S208中,可以通过目标外部应用的被调用服务的SDK,调用目标外部应用的被调用服务,从而实现应用调用。
比如,通过Google+的内容分享服务的SDK,调用Google+的内容分享服务,从而将内容分享到Google+中,通过Facebook的内容分享服务的SDK,调用Facebook的内容分享服务,从而将内容分享到Facebook中。
本实施例中,还可以通过目标外部应用的被调用服务的SDK,获取目标外部应用的被调用服务的调用结果,通过目标外部应用调用组件,接收目标外部应用的被调用服务的SDK返回的调用结果。
具体地,通过目标外部应用的被调用服务的SDK,调用目标外部应用的被调用服务后,该被调用服务可以将调用结果(如登录结果,内容分享结果)返回被调用服务的SDK,从而通过目标外部应用的被调用服务的SDK,获取目标外部应用的被调用服务的调用结果。被调用服务的SDK还可以将调用结果发送至目标外部应用调用组件,如Facebook登录SDK将Facebook登录结果发送至Facebook登录调用组件,从而通过目标外部应用调用组件,接收被调用服务的SDK返回的调用结果,以获取调用结果并显示给用户。
图5为本申请一实施例提供的调用Facebook登录服务的示意图,如图5所示,应用程序启动后,加载资源配置包并初始化,资源配置包中包括Facebook登录调用组件,该组件包括API(Application Programming Interface,应用程序编程接口)接口和Facebook登录SDK适配器。然后,用户终端加载Facebook登录SDK并初始化。用户终端根据用户输入确定目标外部应用和目标外部应用的被调用服务分别为Facebook和Facebook登录服务时,用户终端调用Facebook登录调用组件中的API接口,该API接口调用Facebook登录SDK适配器,Facebook登录SDK适配器反射调用Facebook登录SDK,Facebook登录SDK调用Facebook客户端应用或者网页,进行登录。登录完成后,Facebook登录SDK会回调登录成功或者登录失败接口,最终返回登录成功或登录失败的消息,完成整个Facebook登录。
图6为本申请一实施例提供的调用Google+登录服务的示意图,如图6所示,应用程序启动后,加载资源配置包并初始化,资源配置包中包括Google+登录调用组件,该组件包括API接口和Google+登录SDK适配器。然后,用户终端加载Google+登录SDK并初始化。用户终端根据用户输入确定目标外部应用和目标外部应用的被调用服务分别为Google+和Google+登录服务时,用户终端反射调用Google+登录调用组件中的API接口,该API接口调用Google+登录SDK适配器,Google+登录SDK适配器反射调用Google+登录SDK,Google+登录SDK调用Google+客户端应用或者网页,进行登录。登录完成后,Google+登录SDK会回调登录成功或者登录失败接口,最终返回登录成功或登录失败的消息,完成整个Google+登录。
本实施例中,应用程序的资源配置包可以保存在应用程序的安装包中,本实施例中的方法还可以包括:运行应用程序的安装包,安装应用程序和应用程序的资源配置包,在安装应用程序和应用程序的资源配置包后,接收服务器发送的SDK并保存,其中,服务器发送的SDK为资源配置包中的多个外部应用调用组件调用的SDK。
具体地,将资源配置包设置在应用程序的安装包中,从而通过运行应用程序的安装包的方式,安装应用程序和应用程序的资源配置包,然后,接收服务器发送的SDK并保存在内存中,服务器发送的SDK为资源配置包中的多个外部应用调用组件调用的SDK,如Google+登录SDK、Google+内容分享SDK、Facebook登录SDK、Facebook内容分享SDK。
本实施例中,还可以检测资源配置包中的多个外部应用调用组件调用的SDK是否发生变更,该变更包括版本升级、SDK增加、SDK减少等,若发生变更,则根据变更后的SDK,对应更新资源配置包中的各外部应用调用组件。
比如,资源配置包中的多个外部应用调用组件调用的SDK包括Google+登录SDK、Google+内容分享SDK、Facebook登录SDK和Facebook内容分享SDK。检测确定这四个SDK中Google+内容分享SDK发生版本升级,则对应更新资源配置包中的Google+分享调用组件,从而使得更新后的Google+分享调用组件与升级后的Google+内容分享SDK相适配。
又如,资源配置包中的多个外部应用调用组件调用的SDK包括Google+登录SDK、Google+内容分享SDK、Facebook登录SDK和Facebook内容分享SDK。检测确定这四个SDK中Google+内容分享SDK被删除,则对应在资源配置包中删除Google+分享调用组件即可。
又如,资源配置包中的多个外部应用调用组件调用的SDK包括Google+登录SDK、Google+内容分享SDK、Facebook登录SDK和Facebook内容分享SDK。检测确定服务器下发微信登录SDK,则对应在资源配置包中增加微信登录调用组件即可,微信登录调用组件用于调用微信登录SDK。
可见,通过本实施例中,利用资源配置包将多个外部应用调用组件统一配置起来,能够方便三方SDK的新增、修改与移除等操作。
综上,通过本实施例中,利用资源配置包将多个外部应用调用组件统一配置起来,开发人员只需要在应用程序的安装包中开发资源配置包即可,无需开发三方SDK,达到了减小安装包体积的效果,具有提高开发效率的优势和辅助实现SDK动态更新的优势,并且能够增强配置灵活性。针对不同的应用场景,如登录场景、内容分享场景等,本实施例可以在资源配置包中提供不用的外部应用调用组件,从而实现不同三方SDK的调用。
本实施例中上述提到的dex,是Android平台上Dalvik虚拟机的可执行文件,相当于Windows平台中的exe文件,每个Apk安装包中都有dex文件。
本实施例中上述提到反射调用,指的是JAVA反射机制。JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
图7为本申请一实施例提供的应用调用装置的示意图,如图7所示,该装置包括:
接收单元71,用于接收用户针对当前运行的应用程序的用户输入,确定所述用户输入调用的目标外部应用和所述目标外部应用的被调用服务;
查找单元72,用于根据所述目标外部应用和所述目标外部应用的被调用服务,在所述应用程序的资源配置包中查找目标外部应用调用组件;其中,所述资源配置包包括多个外部应用调用组件,所述外部应用调用组件用于调用对应外部应用的对应应用服务的软件开发工具包SDK;
第一调用单元73,用于调用所述目标外部应用调用组件,以调用所述目标外部应用的被调用服务的SDK;
第二调用单元74,用于通过所述目标外部应用的被调用服务的SDK,调用所述目标外部应用的被调用服务。
可选地,查找单元72具体用于:
获取所述目标外部应用的标识,根据所述目标外部应用的标识,在所述应用程序的资源配置包中查找与所述目标外部应用相对应的外部应用调用组件;其中,与所述目标外部应用相对应的外部应用调用组件的数量为多个,分别用于调用所述目标外部应用的各个应用服务的SDK;
获取所述目标外部应用的被调用服务的服务标识,根据所述服务标识,在查找到的多个外部应用调用组件中,查找用于调用所述目标外部应用的被调用服务的SDK的目标外部应用调用组件。
可选地,所述第一调用单元73具体用于:
调用所述目标外部应用调用组件的调用接口,以触发所述调用接口调用所述目标外部应用调用组件的SDK适配器;
通过所述目标外部应用调用组件的SDK适配器,调用所述目标外部应用的被调用服务的SDK。
可选地,该装置还包括:结果获取单元,用于:
通过所述目标外部应用的被调用服务的SDK,获取所述目标外部应用的被调用服务的调用结果;
通过所述目标外部应用调用组件,接收所述目标外部应用的被调用服务的SDK返回的所述调用结果。
可选地,所述应用程序的资源配置包保存在所述应用程序的安装包中;所述装置还包括:安装单元,用于:
运行所述应用程序的安装包,安装所述应用程序和所述应用程序的资源配置包;
在安装所述应用程序和所述应用程序的资源配置包后,接收服务器发送的SDK并保存,其中,所述服务器发送的SDK为所述资源配置包中的多个外部应用调用组件调用的SDK。
可选地,该装置还包括:更新单元,用于:
检测所述资源配置包中的多个外部应用调用组件调用的SDK是否发生变更;
若是,则根据变更后的所述SDK,对应更新所述资源配置包中的各外部应用调用组件。
本申请实施例中,资源配置包中的多个外部应用调用组件,能够调用不同外部应用的不同应用服务的SDK,应用程序在调用目标外部应用的被调用服务时,首先在资源配置包中确定该被调用服务对应的目标外部应用调用组件,然后调用该目标外部应用调用组件,以调用目标外部应用的被调用服务的SDK,最后通过目标外部应用的被调用服务的SDK,调用目标外部应用的被调用服务,从而达到通过资源配置包,统一调用各个外部应用的效果。开发人员在开发应用程序时,无需在应用程序内放入各个应用服务的SDK,只需要在应用程序内开发资源配置包即可,从而降低了应用程序开发的难度,提高了应用程序的开发效率。
本申请实施例提供的应用调用装置能够实现前述方法实施例中的各个过程,并达到相同的功能和效果,这里不再重复。
进一步地,本申请实施例还提供了一种应用调用设备,图8为本申请一实施例提供的应用调用设备的结构示意图,如图8所示,该设备包括:存储器801、处理器802、总线803和通信接口804。存储器801、处理器802和通信接口804通过总线803进行通信,通信接口804可以包括输入输出接口,输入输出接口包括但不限于键盘、鼠标、显示器、麦克风、扩音器等。
图8中,所述存储器801上存储有可在所述处理器802上运行的计算机可执行指令,所述计算机可执行指令被所述处理器802执行时实现以下流程:
接收用户针对当前运行的应用程序的用户输入,确定所述用户输入调用的目标外部应用和所述目标外部应用的被调用服务;
根据所述目标外部应用和所述目标外部应用的被调用服务,在所述应用程序的资源配置包中查找目标外部应用调用组件;其中,所述资源配置包包括多个外部应用调用组件,所述外部应用调用组件用于调用对应外部应用的对应应用服务的软件开发工具包SDK;
调用所述目标外部应用调用组件,以调用所述目标外部应用的被调用服务的SDK;
通过所述目标外部应用的被调用服务的SDK,调用所述目标外部应用的被调用服务。
可选地,所述计算机可执行指令被所述处理器执行时,所述根据所述目标外部应用和所述目标外部应用的被调用服务,在所述应用程序的资源配置包中查找目标外部应用调用组件,包括:
获取所述目标外部应用的标识,根据所述目标外部应用的标识,在所述应用程序的资源配置包中查找与所述目标外部应用相对应的外部应用调用组件;其中,与所述目标外部应用相对应的外部应用调用组件的数量为多个,分别用于调用所述目标外部应用的各个应用服务的SDK;
获取所述目标外部应用的被调用服务的服务标识,根据所述服务标识,在查找到的多个外部应用调用组件中,查找用于调用所述目标外部应用的被调用服务的SDK的目标外部应用调用组件。
可选地,所述计算机可执行指令被所述处理器执行时,所述调用所述目标外部应用调用组件,以调用所述目标外部应用的被调用服务的SDK,包括:
调用所述目标外部应用调用组件的调用接口,以触发所述调用接口调用所述目标外部应用调用组件的SDK适配器;
通过所述目标外部应用调用组件的SDK适配器,调用所述目标外部应用的被调用服务的SDK。
可选地,所述计算机可执行指令被所述处理器执行时,还包括:
通过所述目标外部应用的被调用服务的SDK,获取所述目标外部应用的被调用服务的调用结果;
通过所述目标外部应用调用组件,接收所述目标外部应用的被调用服务的SDK返回的所述调用结果。
可选地,所述计算机可执行指令被所述处理器执行时,所述应用程序的资源配置包保存在所述应用程序的安装包中,还包括:
运行所述应用程序的安装包,安装所述应用程序和所述应用程序的资源配置包;
在安装所述应用程序和所述应用程序的资源配置包后,接收服务器发送的SDK并保存,其中,所述服务器发送的SDK为所述资源配置包中的多个外部应用调用组件调用的SDK。
可选地,所述计算机可执行指令被所述处理器执行时,还包括:
检测所述资源配置包中的多个外部应用调用组件调用的SDK是否发生变更;
若是,则根据变更后的所述SDK,对应更新所述资源配置包中的各外部应用调用组件。
本申请实施例中,资源配置包中的多个外部应用调用组件,能够调用不同外部应用的不同应用服务的SDK,应用程序在调用目标外部应用的被调用服务时,首先在资源配置包中确定该被调用服务对应的目标外部应用调用组件,然后调用该目标外部应用调用组件,以调用目标外部应用的被调用服务的SDK,最后通过目标外部应用的被调用服务的SDK,调用目标外部应用的被调用服务,从而达到通过资源配置包,统一调用各个外部应用的效果。开发人员在开发应用程序时,无需在应用程序内放入各个应用服务的SDK,只需要在应用程序内开发资源配置包即可,从而降低了应用程序开发的难度,提高了应用程序的开发效率。
本申请实施例提供的应用调用设备能够实现前述方法实施例中的各个过程,并达到相同的功能和效果,这里不再重复。
进一步地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现以下流程:
接收用户针对当前运行的应用程序的用户输入,确定所述用户输入调用的目标外部应用和所述目标外部应用的被调用服务;
根据所述目标外部应用和所述目标外部应用的被调用服务,在所述应用程序的资源配置包中查找目标外部应用调用组件;其中,所述资源配置包包括多个外部应用调用组件,所述外部应用调用组件用于调用对应外部应用的对应应用服务的软件开发工具包SDK;
调用所述目标外部应用调用组件,以调用所述目标外部应用的被调用服务的SDK;
通过所述目标外部应用的被调用服务的SDK,调用所述目标外部应用的被调用服务。
可选地,所述计算机可执行指令被处理器执行时,所述根据所述目标外部应用和所述目标外部应用的被调用服务,在所述应用程序的资源配置包中查找目标外部应用调用组件,包括:
获取所述目标外部应用的标识,根据所述目标外部应用的标识,在所述应用程序的资源配置包中查找与所述目标外部应用相对应的外部应用调用组件;其中,与所述目标外部应用相对应的外部应用调用组件的数量为多个,分别用于调用所述目标外部应用的各个应用服务的SDK;
获取所述目标外部应用的被调用服务的服务标识,根据所述服务标识,在查找到的多个外部应用调用组件中,查找用于调用所述目标外部应用的被调用服务的SDK的目标外部应用调用组件。
可选地,所述计算机可执行指令被处理器执行时,所述调用所述目标外部应用调用组件,以调用所述目标外部应用的被调用服务的SDK,包括:
调用所述目标外部应用调用组件的调用接口,以触发所述调用接口调用所述目标外部应用调用组件的SDK适配器;
通过所述目标外部应用调用组件的SDK适配器,调用所述目标外部应用的被调用服务的SDK。
可选地,所述计算机可执行指令被处理器执行时,还包括:
通过所述目标外部应用的被调用服务的SDK,获取所述目标外部应用的被调用服务的调用结果;
通过所述目标外部应用调用组件,接收所述目标外部应用的被调用服务的SDK返回的所述调用结果。
可选地,所述计算机可执行指令被处理器执行时,所述应用程序的资源配置包保存在所述应用程序的安装包中,还包括:
运行所述应用程序的安装包,安装所述应用程序和所述应用程序的资源配置包;
在安装所述应用程序和所述应用程序的资源配置包后,接收服务器发送的SDK并保存,其中,所述服务器发送的SDK为所述资源配置包中的多个外部应用调用组件调用的SDK。
可选地,所述计算机可执行指令被处理器执行时,还包括:
检测所述资源配置包中的多个外部应用调用组件调用的SDK是否发生变更;
若是,则根据变更后的所述SDK,对应更新所述资源配置包中的各外部应用调用组件。
本申请实施例中,资源配置包中的多个外部应用调用组件,能够调用不同外部应用的不同应用服务的SDK,应用程序在调用目标外部应用的被调用服务时,首先在资源配置包中确定该被调用服务对应的目标外部应用调用组件,然后调用该目标外部应用调用组件,以调用目标外部应用的被调用服务的SDK,最后通过目标外部应用的被调用服务的SDK,调用目标外部应用的被调用服务,从而达到通过资源配置包,统一调用各个外部应用的效果。开发人员在开发应用程序时,无需在应用程序内放入各个应用服务的SDK,只需要在应用程序内开发资源配置包即可,从而降低了应用程序开发的难度,提高了应用程序的开发效率。
其中,所述的计算机可读存储介质包括只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本申请实施例提供的存储介质能够实现前述方法实施例中的各个过程,并达到相同的功能和效果,这里不再重复。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种应用调用方法,其特征在于,包括:
接收用户针对当前运行的应用程序的用户输入,确定所述用户输入调用的目标外部应用和所述目标外部应用的被调用服务;
获取所述目标外部应用的标识,根据所述目标外部应用的标识,在所述应用程序的资源配置包中查找与所述目标外部应用相对应的外部应用调用组件;其中,所述资源配置包包括多个外部应用调用组件,所述外部应用调用组件用于调用对应外部应用的对应应用服务的软件开发工具包SDK,与所述目标外部应用相对应的外部应用调用组件的数量为多个,分别用于调用所述目标外部应用的各个应用服务的SDK;
获取所述目标外部应用的被调用服务的服务标识,根据所述服务标识,在查找到的多个外部应用调用组件中,查找用于调用所述目标外部应用的被调用服务的SDK的目标外部应用调用组件;
调用所述目标外部应用调用组件,以调用所述目标外部应用的被调用服务的SDK;
通过所述目标外部应用的被调用服务的SDK,调用所述目标外部应用的被调用服务。
2.根据权利要求1所述的方法,其特征在于,所述调用所述目标外部应用调用组件,以调用所述目标外部应用的被调用服务的SDK,包括:
调用所述目标外部应用调用组件的调用接口,以触发所述调用接口调用所述目标外部应用调用组件的SDK适配器;
通过所述目标外部应用调用组件的SDK适配器,调用所述目标外部应用的被调用服务的SDK。
3.根据权利要求1所述的方法,其特征在于,还包括:
通过所述目标外部应用的被调用服务的SDK,获取所述目标外部应用的被调用服务的调用结果;
通过所述目标外部应用调用组件,接收所述目标外部应用的被调用服务的SDK返回的所述调用结果。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述应用程序的资源配置包保存在所述应用程序的安装包中;所述方法还包括:
运行所述应用程序的安装包,安装所述应用程序和所述应用程序的资源配置包;
在安装所述应用程序和所述应用程序的资源配置包后,接收服务器发送的SDK并保存,其中,所述服务器发送的SDK为所述资源配置包中的多个外部应用调用组件调用的SDK。
5.根据权利要求1至3任一项所述的方法,其特征在于,还包括:
检测所述资源配置包中的多个外部应用调用组件调用的SDK是否发生变更;
若是,则根据变更后的所述SDK,对应更新所述资源配置包中的各外部应用调用组件。
6.一种应用调用装置,其特征在于,包括:
接收单元,用于接收用户针对当前运行的应用程序的用户输入,确定所述用户输入调用的目标外部应用和所述目标外部应用的被调用服务;
查找单元,用于获取所述目标外部应用的标识,根据所述目标外部应用的标识,在所述应用程序的资源配置包中查找与所述目标外部应用相对应的外部应用调用组件;其中,所述资源配置包包括多个外部应用调用组件,所述外部应用调用组件用于调用对应外部应用的对应应用服务的软件开发工具包SDK,与所述目标外部应用相对应的外部应用调用组件的数量为多个,分别用于调用所述目标外部应用的各个应用服务的SDK;获取所述目标外部应用的被调用服务的服务标识,根据所述服务标识,在查找到的多个外部应用调用组件中,查找用于调用所述目标外部应用的被调用服务的SDK的目标外部应用调用组件;
第一调用单元,用于调用所述目标外部应用调用组件,以调用所述目标外部应用的被调用服务的SDK;
第二调用单元,用于通过所述目标外部应用的被调用服务的SDK,调用所述目标外部应用的被调用服务。
7.根据权利要求6所述的装置,其特征在于,所述第一调用单元具体用于:
调用所述目标外部应用调用组件的调用接口,以触发所述调用接口调用所述目标外部应用调用组件的SDK适配器;
通过所述目标外部应用调用组件的SDK适配器,调用所述目标外部应用的被调用服务的SDK。
8.根据权利要求6所述的装置,其特征在于,还包括:结果获取单元,用于:
通过所述目标外部应用的被调用服务的SDK,获取所述目标外部应用的被调用服务的调用结果;
通过所述目标外部应用调用组件,接收所述目标外部应用的被调用服务的SDK返回的所述调用结果。
9.根据权利要求6至8任一项所述的装置,其特征在于,所述应用程序的资源配置包保存在所述应用程序的安装包中;所述装置还包括:安装单元,用于:
运行所述应用程序的安装包,安装所述应用程序和所述应用程序的资源配置包;
在安装所述应用程序和所述应用程序的资源配置包后,接收服务器发送的SDK并保存,其中,所述服务器发送的SDK为所述资源配置包中的多个外部应用调用组件调用的SDK。
10.根据权利要求6至8任一项所述的装置,其特征在于,还包括:更新单元,用于:
检测所述资源配置包中的多个外部应用调用组件调用的SDK是否发生变更;
若是,则根据变更后的所述SDK,对应更新所述资源配置包中的各外部应用调用组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811207560.9A CN109408256B (zh) | 2018-10-17 | 2018-10-17 | 应用调用方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811207560.9A CN109408256B (zh) | 2018-10-17 | 2018-10-17 | 应用调用方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109408256A CN109408256A (zh) | 2019-03-01 |
CN109408256B true CN109408256B (zh) | 2021-03-19 |
Family
ID=65468278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811207560.9A Active CN109408256B (zh) | 2018-10-17 | 2018-10-17 | 应用调用方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109408256B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209511B (zh) * | 2019-05-30 | 2022-03-11 | 北京口袋时尚科技有限公司 | 应用之间的跳转方法及装置 |
CN110300165B (zh) * | 2019-06-26 | 2021-11-12 | 北京字节跳动网络技术有限公司 | 一种功能程序的调用方法、装置、设备及存储介质 |
CN110489157A (zh) * | 2019-07-10 | 2019-11-22 | 厦门安盟网络股份有限公司 | 基于Web环境下的资源配置方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021786A (zh) * | 2007-03-15 | 2007-08-22 | 浪潮集团山东通用软件有限公司 | 一种调用通用构件的方法 |
CN102214093A (zh) * | 2010-04-07 | 2011-10-12 | 苹果公司 | 向第三方应用的搜索扩展能力 |
CN103077032A (zh) * | 2013-01-06 | 2013-05-01 | 北京百度网讯科技有限公司 | 应用程序的操作方法及应用程序的客户端 |
CN104461663A (zh) * | 2014-12-30 | 2015-03-25 | 北京奇虎科技有限公司 | 一种加载其它移动端应用的方法、装置和移动终端 |
US9134719B2 (en) * | 2007-12-29 | 2015-09-15 | Amx Llc | Self-describing device module and system and computer-readable medium for the production thereof |
CN107526605A (zh) * | 2016-06-20 | 2017-12-29 | 腾讯科技(深圳)有限公司 | 实现应用程序加载服务组件的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5447030B2 (ja) * | 2010-03-12 | 2014-03-19 | 株式会社リコー | 電子機器、情報処理方法、及び情報処理プログラム |
-
2018
- 2018-10-17 CN CN201811207560.9A patent/CN109408256B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021786A (zh) * | 2007-03-15 | 2007-08-22 | 浪潮集团山东通用软件有限公司 | 一种调用通用构件的方法 |
US9134719B2 (en) * | 2007-12-29 | 2015-09-15 | Amx Llc | Self-describing device module and system and computer-readable medium for the production thereof |
CN102214093A (zh) * | 2010-04-07 | 2011-10-12 | 苹果公司 | 向第三方应用的搜索扩展能力 |
CN103077032A (zh) * | 2013-01-06 | 2013-05-01 | 北京百度网讯科技有限公司 | 应用程序的操作方法及应用程序的客户端 |
CN104461663A (zh) * | 2014-12-30 | 2015-03-25 | 北京奇虎科技有限公司 | 一种加载其它移动端应用的方法、装置和移动终端 |
CN107526605A (zh) * | 2016-06-20 | 2017-12-29 | 腾讯科技(深圳)有限公司 | 实现应用程序加载服务组件的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109408256A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10904361B2 (en) | Method, apparatus, and system for implementing JAVA application installation by means of cloud compilation | |
US8555280B2 (en) | Terminal device of non-android platform for executing android applications, and computer readable recording medium for storing program of executing android applications on non-android platform | |
CN109408256B (zh) | 应用调用方法和装置 | |
US10019598B2 (en) | Dynamic service discovery | |
US9342333B2 (en) | Backend custom code extensibility | |
CN110308999B (zh) | 一种应用间动态共享依赖包的方法、存储介质及移动终端 | |
CN111767090A (zh) | 小程序的启动方法、装置、电子设备以及存储介质 | |
CN110968331A (zh) | 应用程序运行的方法和装置 | |
CN112162795A (zh) | 一种插件启动方法、装置、计算机设备和存储介质 | |
CN110221877B (zh) | 一种应用程序的运行方法、装置、电子设备、及存储介质 | |
CN112835615B (zh) | 软件开发工具包的插件化处理方法、装置及电子设备 | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
CN109933355B (zh) | 应用程序升级方法及装置 | |
CN115658165A (zh) | 用于启动租户插件以及实现进程内通信的方法和装置 | |
CN111142972B (zh) | 用于扩展应用程序的功能的方法、装置、系统及介质 | |
US11163622B1 (en) | Web application implementing a shared set of identifiers for handling links to web application plugins | |
CN114047933A (zh) | 多开Android应用的方法、装置、设备和介质 | |
CN114510334A (zh) | 类实例的调用方法、装置、电子设备及自动驾驶车辆 | |
CN113515299A (zh) | 软件开发工具包sdk热升级方法、装置、设备及存储介质 | |
CN113157348A (zh) | 游戏启动方法、装置、计算机设备以及存储介质 | |
CN113050962A (zh) | 移动服务升级方法、装置和终端 | |
CN112181470A (zh) | 一种部署补丁的方法和装置 | |
CN116382796B (zh) | 一种h5小程序运行器的插件管理方法、装置及电子设备 | |
CN112068814A (zh) | 可执行文件的生成方法、装置、系统及介质 | |
CN104978214A (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 |