基于Android系统的多个APP间通讯方法及装置与流程

文档序号:29092120发布日期:2022-03-02 03:09阅读:771来源:国知局
基于Android系统的多个APP间通讯方法及装置与流程
基于android系统的多个app间通讯方法及装置
技术领域
1.本技术涉及通讯技术领域,尤其是涉及基于android系统的多个app间通讯方法及装置。


背景技术:

2.随着移动互联网的高速发展,传统pc端上的大型应用程序都在往移动端迁移。受限于移动端资源有限,大型应用程序都会按单一功能拆分成多个app来实现,用户可以根据实际情况安装;另一方面,工具类app已基本定型,比如地图、支付、拍照、扫码等,主要给其他app提供基础服务。但无论哪种情况,都极大提高了app间跨进程信息交互的频次。
3.目前,基于android系统的原生框架,app在不同应用程序之间交互数据,采用的是四种跨进程通讯方式,其分别是activity, content provider, broadcast, service,但是这四种跨进程通讯方式只适用于在同一终端设备上运行的多个app,而对于不同终端设备上运行的app就不再适用。


技术实现要素:

4.为了实现不同终端设备上运行app之间的快速通讯,本技术提供了一种基于android系统的多个app间通讯方法及装置。
5.在本技术的第一方面,提供了一种基于android系统的多个app间通讯方法。其中,多个app包括第一app和第二app,且所述第一app和所述第二app不在同一终端设备上,该方法包括:将所述第一app中目标业务在数据服务中心进行注册;当所述第二app需要调用所述目标业务时,在所述第二app中构造与所述目标业务对应的代理业务,并通过调用所述代理业务实现调用注册在数据服务中心的所述目标业务。
6.通过采用上述技术方案,将第一app的目标业务注册在数据服务中心,数据服务中心将目标业务的业务信息进行存储,当第二app需要调用该目标业务时,通过在第二app中构造与目标业务对应的代理业务,第二app只需要直接调用代理业务,既可实现调用注册在数据服务中心的目标业务,由于调用过程通过数据服务中心实现,因此即使app在不同终端设备,通过数据服务中心也能实现app之间的数据交互,并且通过构造代理业务,第二app能够像调用本应用内部的功能接口一样,快速地调用第一app的目标业务。
7.可选的,所述在所述第二app中构造与所述目标业务对应的代理业务包括:在所述第二app中集成公共库和所述目标业务的声明;所述公共库根据所述声明构造所述代理业务。
8.可选的,所述通过调用所述代理业务实现调用注册在数据服务中心的所述目标业务包括:通过调用所述代理业务,将所述第二app输出的调用信息传输至所述数据服务中心,所述调用信息至少包括调用的业务名称、功能函数以及所述第二app获取的参数;根据
所述调用信息,在所述数据服务中心中调用与所述调用信息匹配的所述目标业务。
9.可选的,所述将所述第二app输出的调用信息传输至所述数据服务中心之前还包括:将所述调用信息按照预设数据包定义规则进行打包处理,获得数据包;将所述数据包进行加密、压缩后传输至所述数据服务中心。
10.可选的,所述将所述第一app中目标业务在数据服务中心进行注册包括:将所述目标业务的业务信息传输至数据服务中心进行注册,所述业务信息包括所述第一app的名称、网络地址以及所述目标业务的名称。
11.在本技术的第二方面,提供了一种基于android系统的多个app间通讯系统。其中,多个app包括第一app和第二app,且所述第一app和所述第二app不在同一终端设备上,该系统包括:注册模块,用于将所述第一app中目标业务在数据服务中心进行注册;构造调用模块,用于在所述第二app需要调用所述目标业务时,在所述第二app中构造与所述目标业务对应的代理业务,并通过调用所述代理业务实现调用注册在数据服务中心的所述目标业务。
12.可选的,所述构造调用模块具体用于:在所述第二app中集成公共库和所述目标业务的声明;所述公共库根据所述声明构造所述代理业务。
13.可选的,所述构造调用模块还具体用于:通过调用所述代理业务,将所述第二app输出的调用信息传输至所述数据服务中心,所述调用信息至少包括调用的业务名称、功能函数以及所述第二app获取的参数;根据所述调用信息,在所述数据服务中心中调用与所述调用信息匹配的所述目标业务。
14.在本技术的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
15.在本技术的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本技术的第一方面的方法。
16.应当理解,发明内容部分中所描述的内容并非旨在限定本技术的实施例的关键或重要特征,亦非用于限制本技术的范围。本技术的其它特征将通过以下的描述变得容易理解。
附图说明
17.结合附图并参考以下详细说明,本技术各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:图1是本技术实施例中基于android系统的多个app间通讯方法的流程图;图2是本技术实施例中数据服务中心的示意图;图3是本技术实施例中一种数据包的定义规则;图4是本技术实施例中基于android系统的多个app间通讯系统的方框图;图5是本技术实施例中电子设备的方框图。
具体实施方式
18.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例
中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
19.在本技术的描述中,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
20.在android系统的原生框架中,由于系统中的应用程序之间不能共享内存,因此不同应用程序之间交互数据(即跨进程通讯)就会较为困难。而目前已有四种跨进程通讯的方式,其分别适用于android应用程序的四大组件activity, content provider, broadcast, service。这现有的四种跨进程通讯的方式只适用于特定场景,数据交互也需要按照特定的协议和方式,特别是,上述四种跨进程通讯方式只能作用于同一终端设备不同app间的数据交互。
21.基于上述问题,本技术提供了一种基于android系统的多个app间通讯方法和系统,以实现android系统环境下的app,能像调用自己的功能接口一样,快速调用运行在其他终端设备或同一终端设备上的其他app的功能接口,最终实现数据交互。
22.图1示出了本技术实施例中基于android系统的多个app间通讯方法的流程图。其中,多个app包括第一app和第二app,且第一app和第二app在不同终端设备上,参见图1,该方法包括以下步骤:步骤s110:将第一app中目标业务在数据服务中心进行注册。
23.首先,需要说明的是,第一app是指写有目标业务实现逻辑的app,即目标业务实际所在的app;第二app是指需要调用目标业务的其他远端app;目标业务此处指代的是被调用的业务。
24.此外,本技术实施例中的第一app和第二app也可以在同一终端设备上,只是在本实施例中,主要说明的是第一app和第二app在不同终端设备上时,第一app和第二app之间的通讯方法。
25.具体地,先建立一个数据服务中心,数据服务中心能够集中管理app端注册的目标业务的功能接口。再将第一app的目标业务在数据服务中心进行注册,即将目标业务的业务服务接口存储在数据服务中心。
26.图2示出了本技术实施例中数据服务中心的示意图。参见图2,数据服务中心包括数据分发器210和app端注册业务接口管理器220。数据服务中心接收到数据后,会先对数据进行解压、解密;再通过数据分发器210,将数据分发给app端注册业务接口管理器220中相应的第一app,来实现该业务;app端注册业务接口管理器220用于管理各个第一app注册在数据服务中心的业务服务接口。
27.在一些实施方式中,步骤110包括以下步骤:将目标业务的业务信息传输至数据服务中心进行注册,业务信息包括第一app的名称、网络地址以及目标业务的名称。
28.具体地,获取第一app的名称、网络地址以及第一app中目标业务的名称。将这些业务信息进行打包,获得数据包。在本实施例中,所有对数据的打包,均按照预设数据包定义规则进行打包。示例地,图3示出了一种数据包的定义规则,参见图3,数据包格式包括数据头和数据区两部分,其中,数据头包括该数据包的唯一id、数据发送方、数据接收方以及数据调用者;数据区包括数据,数据即为上述的业务信息。
29.为了防止数据泄露或者被恶意篡改,获得数据包之后,将数据包再进行加密。其中,加密的方式可以采用对称式加密方式:aes、3des等,此处不对加密方式做具体限定。
30.对数据包进行加密后,还可对数据进行压缩,压缩后再传输至数据服务中心。数据压缩可以采用zip压缩。
31.若第一app和第二app部署在同一终端设备上,将数据包传输至数据服务中心的传输方法可以是采用android系统原生提供的aidl通讯方式来进行传输;也可以通过网络通讯的方式进行传输,其中,网络通讯方式可以是tcp/ip网络通讯协议、udp网络通讯协议、http、smtp等。若第一app和第二app部署在不同终端设备上,则只能采用网络通信的方式进行传输。
32.在本技术实施例中,第一app和第二app均集成一个公共库。需要说明的是,公共库是指,在应用程序运行的环境中构建的一个公共数据库,运行在该环境中的所有应用程序都可以调用公共库,在公共库中封装有多种功能函数等。其中,公共库中也包括上述所列举的通讯协议。当第一app将数据包压缩之后,第一app引用公共库,并调用公共库中的某一通讯协议,来实现将数据包传输至数据服务中心。
33.步骤s120:当第二app需要调用目标业务时,在第二app中构造与目标业务对应的代理业务,并通过调用代理业务实现调用注册在数据服务中心的目标业务。
34.需要说明的是,代理业务是指与目标业务对应的一个虚拟的业务,代理业务不能真正实现业务所需的函数功能。
35.当第二app也需要用到第一app中的目标业务时,第二app通过构造一个代理业务,在需要进行数据交互时,第二app直接调用该代理业务即可,不需要跨进程调用第一app中的目标业务,而该代理业务同样属于第二app内部的业务,因此第二app调用代理业务就像调用自己内部的业务一样,其过程更加简单,从而能够实现快速地跨app间通讯。
36.在一些实施方式中,在第二app中构造与目标业务对应的代理业务具体包括:在第二app中集成公共库和目标业务的声明;公共库根据声明构造代理业务。需要说明的是,上面已经介绍了公共库的集成,此处不再赘述。具体地,在公共库中存储有构造业务的构造函数,当第二app需要用到目标业务时,只需在第二时app中集成(即定义)目标业务的声明。集成目标业务的声明后,通过引用公共库,来调用构造函数,公共库根据声明利用构造函数来构造代理业务。
37.示例地,目标业务为第一app中的业务w,第一app和第二app均集成有node公共库(实现代理、组装、打包功能)。则在第二app中集成业务w的声明(即定义)的实现方式可以为:public interface wapi extends xapi {@api_putvoid test_w();@api_getvoid getwansy(getwdatalistener《int》 l);@api_callbackvoid setwchangelistener(wlistener listener);}利用node公共库构造业务w的代理业务w的实现方式可以为:先初始化第二app的node公共库“node.init(string app, string host, initcallback callback)”;初始化
node公共库成功后,再构造代理业务w“wapi api = node.buildxapi(wapi.class)”。
38.第二app调用代理业务w的实现方式可以为:api.test_w()、api. getwansy (new getwdatalistener())、api. setwchangelistener(new wlistener)。
39.在一些实施方式中,构造出代理业务后,通过调用代理业务实现调用注册在数据服务中心的目标业务具体包括:通过调用代理业务,将第二app输出的调用信息传输至数据服务中心;根据调用信息,在数据服务中心中调用与调用信息匹配的目标业务。
40.需要说明的是,调用信息包括(但不限于)调用的业务名称、功能函数以及第二app获取的参数,还可以包括调用时间等。
41.在一些实施方式中,将第二app输出的调用信息传输至数据服务中心之前还包括:将调用信息按照预设数据包定义规则进行打包处理,获得数据包;将数据包进行加密、压缩后传输至数据服务中心。
42.需要说明的是,此处的预设数据包定义规则使用上述的预设数据包定义规则。
43.具体地,第二app会先将需要调用的目标业务的名称、需要使用到该目标业务中哪些功能函数、使用该功能函数需要输入的参数等这些调用信息进行打包,打包的方式使用上述介绍的方式。获得数据包后再进行加密、压缩。第二app引用公共库调用公共库中的代理业务,调用代理业务即将获得的数据包发送至代理业务。第二app还需要引用公共库调用公共户中的通讯协议,来将代理服务中的数据包发送至数据服务中心。
44.数据服务中心获取到该数据包后,会先对数据包进行解压、解密、解包等操作,来获取调用信息。数据服务中心根据调用信息在其接口管理器中找到相应的、能够实现目标业务的第一app的服务接口,数据服务中心还会将调用信息再经过打包、加密、压缩等过程,获得数据包,并通过该服务接口利用公共库中的通讯协议,将数据包传输至第一app中,第一app再经过解压、解密、解包等操作后,接收到调用信息。
45.第一app接收到调用信息后,根据调用信息中的所要调用的目标业务名称和所要调用的功能函数,来自动发起对该功能函数的调用,并将参数输入该功能函数。运行完成后,第一app会将结果值再返给数据服务中心,数据服务中心再将结果值返给第二app。从而完成整个调用流程。
46.示例地,目标业务为第一app中的业务w,第一app和第二app均集成有node公共库(实现代理、组装、打包功能)。第一app接收到调用信息后,实现业务w的方式可以为:先初始化第一app的node公共库“node.init(string app, string host, initcallback callback)”;初始化node公共库后,再实现业务w:public class wprocessor extends dataprocessor implements wapi {@overridepublic void test_w() {
ꢀꢀꢀ
// 真正实现业务逻辑

}@overridepublic void getwansy(getwdatalistener《int》 l){
ꢀꢀꢀ
// 真正实现业务逻辑
…ꢀꢀꢀ
// 返回数据
ꢀꢀꢀ
l.ongetdatadone(xx);}@overridepublic void setwchangelistener(wlistener listener){
ꢀꢀꢀ
// 真正实现业务逻辑
…ꢀ
绑定监听器}}通过采用上述技术方案,第二app需要调用第一app中的目标业务时,只需要直接调用构造于第二app中的代理业务,并通过注册在数据服务中心的第一app的服务接口,将调用信息传输至第一app,并实现调用过程。由于此过程是通过数据服务中心传输调用信息,因此,即使第一app和第二app不在同一终端设备,也能实现调用,更重要的是,通过在第二app中构造代理业务,使第二app需要调用目标业务时,只需直接调用代理业务即可实现调用目标业务,从而能够更快的完成整个调用过程。
47.图4示出了本技术实施例中的基于android系统的多个app间通讯系统的方框图。参见图4,该系统包括:注册模块310,用于将第一app中目标业务在数据服务中心进行注册;构造调用模块320,用于在第二app需要调用目标业务时,在第二app中构造与目标业务对应的代理业务,并通过调用代理业务实现调用注册在数据服务中心的目标业务。
48.在一些实施方式中,构造调用模块320具体用于:在第二app中集成公共库和目标业务的声明;公共库根据声明构造代理业务。
49.在一些实施方式中,构造调用模块320还具体用于:通过调用代理业务,将第二app输出的调用信息传输至数据服务中心,调用信息至少包括调用的业务名称、功能函数以及第二app获取的参数;根据调用信息,在数据服务中心中调用与调用信息匹配的目标业务。
50.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
51.本技术实施例中提供了一种电子设备,如图5所示,图5所示的电子设备400包括:处理器401和存储器403。其中,处理器401和存储器403相连,如通过总线402相连。可选地,电子设备400还可以包括收发器404。需要说明的是,实际应用中收发器404不限于一个,该电子设备400的结构并不构成对本技术实施例的限定。
52.处理器401可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器401也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
53.总线402可包括一通路,在上述组件之间传送信息。总线402可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线402可以分为地址总
线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
54.存储器403可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
55.存储器403用于存储执行本技术方案的应用程序代码,并由处理器401来控制执行。处理器401用于执行存储器403中存储的应用程序代码,以实现前述方法实施例所示的内容。
56.其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
57.作为另一方面,本技术还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中的。上述计算机可读存储介质存储有一个或者多个程序,当上述前述程序被一个或者一个以上的处理器用来执行描述于本技术的多个app间通讯方法。
58.以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1