一种跨进程通信方法、装置及设备制造方法及图纸

技术编号:22816903 阅读:35 留言:0更新日期:2019-12-14 13:04
本申请实施例提供一种跨进程通信方法、装置及设备,该方法应用于终端设备,该终端设备包括第一应用程序和至少一个第二应用程序的终端设备,至少一个第二应用程序访问第一应用程序中的服务,该方法用以提高不同版本的AIDL文件的兼容性,改善跨进程调用服务的可靠性。该方法包括:至少一个第二应用程序通过跨进程通信向第一应用程序发送访问请求,因为访问请求包括与服务的目标服务接口唯一对应的标识,所以第一应用程序根据标识确定目标服务接口,并执行目标服务接口对应的方法对象,生成执行结果。

A cross process communication method, device and equipment

【技术实现步骤摘要】
一种跨进程通信方法、装置及设备
本申请涉及终端
,尤其涉及一种跨进程通信方法、装置及设备。
技术介绍
Android(安卓)系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。为了使其它的应用程序也可以访问本应用程序提供的服务,Android系统使用一种安卓接口定义语言(androidinterfacedefinitionlanguage,AIDL)来开放本应用程序提供的服务的接口,并提供将开发人员通过AIDL编写的AIDL文件(一般是.AIDL文件)自动转换成中间文件(一般是.java文件)的AIDL工具。该AIDL工具被集成进AndroidStudio(安卓开发平台)工具链,编译时自动触发和执行。AIDL工具将该中间文件提供给其它的应用程序和本应用程序,其它的应用程序和本应用程序将该JAVA文件集成到自身的工程中,以便实现跨进程调用服务。目前,如果其它的应用程序和本应用程序所使用的AIDL文件的版本不同,则很可能在跨进程服务调用过程中报错,出现功能不可用的问题。
技术实现思路
本申请实施例提供一种跨进程通信方法、装置及设备,用以提高不同版本的AIDL文件的兼容性,改善跨进程调用服务的可靠性。第一方面,本申请实施例提供了一种跨进程通信方法,该方法适用于终端设备,该方法包括:至少一个第二应用程序通过跨进程通信向第一应用程序发送访问请求,访问请求用于请求访问第一应用程序的服务,访问请求包括与服务的目标服务接口唯一对应的标识。然后第一应用程序根据标识确定目标服务接口,并执行目标服务接口对应的方法对象,生成执行结果。本申请实施例中,该方法基于新的AIDL文件转换方法实现跨进程通信,一定程度上可以改善跨进程调用服务的可靠性。在一种可能的设计中,至少一个第二应用程序通过跨进程通信向所述第一应用程序发送访问请求之前,还包括:至少一个第二应用程序通过第一JAVA文件确定出与目标服务接口的属性信息唯一对应的标识;其中,所述属性信息包括目标服务接口的接口名称和接口参数类型中的至少一个,第一JAVA文件与所述第一应用程序的第一版本的安卓接口定义语言AIDL文件相对应。然后第一应用程序根据所述标识确定所述目标服务接口,具体方式是:第一应用程序通过第二JAVA文件确定出与标识对应的目标服务接口,第二JAVA文件与第一应用程序的第二版本的AIDL文件相对应。本申请实施例中,因不同的服务接口对应的标识不同,相同的服务接口对应的标识相同。所以第二应用程序可以基于与服务接口唯一对应的标识访问第一应用程序中的服务。在一种可能的设计中,与目标服务接口的属性信息唯一对应的标识是通过目标服务接口的接口名称和接口参数类型中的至少一个进行哈希运算得到的散列值。其中,所述第一JAVA文件是按照设定规则对第一版本的AIDL文件进行转换得到的;所述第二JAVA文件是按照设定规则对第二版本的AIDL文件进行转换得到的;所述设定规则包括:从第一应用程序的第一版本的AIDL文件中获取每个服务接口的属性信息,根据所述每个服务接口的属性信息确定与每个服务接口唯一对应的标识;根据所述与每个服务接口唯一对应的标识,将所述AIDL文件转换成JAVA文件。第二方面,本申请实施例提供了一种AIDL文件转换方法,该方法应用于具有开发功能的设备,该方法包括:设备从第一应用程序的AIDL文件中获取服务接口的属性信息,设备根据服务接口的属性信息确定与服务接口唯一对应的标识,继而根据与服务接口唯一对应的标识,将AIDL文件转换成JAVA文件。本申请实施例,该方法可以提高不同版本的AIDL文件的兼容性,一定程度上可以改善跨进程调用服务的可靠性。在一种可能的设计中,属性信息包括接口名称和接口参数类型中的至少一个。设备根据所述服务接口的属性信息确定与服务接口唯一对应的标识,具体方式是:对服务接口的接口名称和接口参数类型中的至少一个进行哈希运算,生成与服务接口对应的散列值,其中,不同服务接口的散列值不同,相同服务接口的散列值相同。设备根据所述与服务接口唯一对应的标识,将所述AIDL文件转换成JAVA文件,具体方式:根据与服务接口对应的散列值,将AIDL文件转换成JAVA文件。本申请实施例中,设备通过上述方法可以确定出与接口唯一对应的散列值,从而保证第一应用程序中的服务可以被正常访问。在一种可能的设计中,设备还将JAVA文件发送给至少一个第二应用程序对应地服务器,所述至少一个应用程序为访问第一应用程序中服务的应用程序。本申请实施例中,设备将JAVA文件发送至第二应用程序,以便于第二应用程序访第一应用程序的服务。第三方面,本申请实施例提供一种终端设备,包括处理器和存储器。其中,存储器用于存储一个或多个计算机程序;当存储器存储的一个或多个计算机程序被处理器执行时,使得该终端设备能够实现上述第一方面的任意一种可能的设计的方法。第四方面,本申请实施例还提供一种装置,该装置包括执行上述第一方面的任意一种可能的设计的方法的模块/单元。这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。第五方面,本申请实施例提供一种设备,包括处理器和存储器。其中,存储器用于存储一个或多个计算机程序;当存储器存储的一个或多个计算机程序被处理器执行时,使得该设备能够实现上述第二方面的任意一种可能的设计的方法。第六方面,本申请实施例还提供一种装置,该装置包括执行上述第二方面的任意一种可能的设计的方法的模块/单元。这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。第七方面,本申请实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得所述电子设备执行上述任一方面的任意一种可能的设计的方法。第八方面,本申请实施例还提供一种包含计算机程序产品,当所述计算机程序产品在终端上运行时,使得所述电子设备执行上述任一方面的任意一种可能的设计的方法。本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。附图说明图1为本申请实施例提供的一种通信系统示意图;图2为本申请实施例提供的一种具有开发功能的设备的结构示意图;图3为本申请实施例提供的一种AIDL文件转换方法流程示意图;图4为本申请实施例提供的一种跨进程通信方法流程示意图;图5为本申请实施例提供的另一种跨进程通信方法示意图;图6为本申请实施例提供的另一种跨进程通信方法示意图;图7为本申请实施例提供的另一种跨进程通信方法示意图;图8为本申请实施例提供的另一种跨进程通信方法示意图;图9为本申请实施例提供的一种AIDL文件转换方法流程示意图;图10为本申请实施例提供的一种手机的结构示意图;图11为本申请实施例提供的安卓操作系统结构示意图;图12为本申请实施例提供的一种终端设备结构示意图。具体实施方式为本文档来自技高网...

【技术保护点】
1.一种跨进程通信方法,适用于包括第一应用程序和至少一个第二应用程序的终端设备,所述至少一个第二应用程序访问所述第一应用程序中的服务,其特征在于,该方法包括:/n所述至少一个第二应用程序通过跨进程通信向所述第一应用程序发送访问请求,所述访问请求用于请求访问所述第一应用程序的服务,所述访问请求包括与所述服务的目标服务接口唯一对应的标识,其中,所述目标服务接口为所述第一应用程序所提供的目标服务对应的接口;/n所述第一应用程序根据所述标识确定所述目标服务接口,并执行所述目标服务接口对应的方法对象,生成执行结果。/n

【技术特征摘要】
1.一种跨进程通信方法,适用于包括第一应用程序和至少一个第二应用程序的终端设备,所述至少一个第二应用程序访问所述第一应用程序中的服务,其特征在于,该方法包括:
所述至少一个第二应用程序通过跨进程通信向所述第一应用程序发送访问请求,所述访问请求用于请求访问所述第一应用程序的服务,所述访问请求包括与所述服务的目标服务接口唯一对应的标识,其中,所述目标服务接口为所述第一应用程序所提供的目标服务对应的接口;
所述第一应用程序根据所述标识确定所述目标服务接口,并执行所述目标服务接口对应的方法对象,生成执行结果。


2.根据权利要求1所述的方法,其特征在于,所述至少一个第二应用程序通过跨进程通信向所述第一应用程序发送访问请求之前,还包括:
所述至少一个第二应用程序通过第一JAVA文件确定出与目标服务接口的属性信息唯一对应的标识;其中,所述属性信息包括目标服务接口的接口名称和接口参数类型中的至少一个,所述第一JAVA文件与所述第一应用程序的第一版本的接口定义语言AIDL文件相对应;
所述第一应用程序根据所述标识确定所述目标服务接口,包括:
所述第一应用程序通过第二JAVA文件确定出与所述标识对应的目标服务接口,所述第二JAVA文件与所述第一应用程序的第二版本的AIDL文件相对应。


3.根据权利要求2所述的方法,其特征在于,所述与目标服务接口的属性信息唯一对应的标识是通过对所述目标服务接口的接口名称和接口参数类型中的至少一个进行哈希运算得到的散列值。


4.根据权利要求2所述的方法,其特征在于,所述第一JAVA文件是按照设定规则对第一版本的AIDL文件进行转换得到的;所述第二JAVA文件是按照设定规则对第二版本的AIDL文件进行转换得到的;所述设定规则包括:从第一应用程序的第一版本的AIDL文件中获取每个服务接口的属性信息,根据所述每个服务接口的属性信息确定与每个服务接口唯一对应的标识;根据所述与每个服务接口唯一对应的标识,将所述AIDL文件转换成JAVA文件。


5.一种终端设备,其特征在于,包括处理器和存储器;
所述存储器用于存储一个或多个计算机程序,还存储有系统软件包和至少一个第二应用程序的应用软件包;
当所述存储器存储的一个或...

【专利技术属性】
技术研发人员:徐吉毛天阳
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1