CN113495794B - 一种Android系统的模块桥接方法、装置、电子设备及存储介质 - Google Patents
一种Android系统的模块桥接方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113495794B CN113495794B CN202010258965.6A CN202010258965A CN113495794B CN 113495794 B CN113495794 B CN 113495794B CN 202010258965 A CN202010258965 A CN 202010258965A CN 113495794 B CN113495794 B CN 113495794B
- Authority
- CN
- China
- Prior art keywords
- sending
- protocol interface
- class
- feedback
- mapping relation
- 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/546—Message passing systems or structures, e.g. queues
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)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种Android系统的模块桥接方法、装置、电子设备及存储介质,其中该方法包括:将预定义的回馈协议接口套接至发送协议接口中;定义发送类来继承发送协议接口;构建发送类的对象到回馈协议接口的对象的第一MAP映射关系;求取发送类的对象的哈希编码,并构建该哈希编码到对应的第一MAP映射关系的第二MAP映射关系;基于Android系统的广播机制,控制发送模块发起对发送类的对象的调用,并获取调用的发送类的对象的哈希编码;根据获取的哈希编码和上述映射关系,控制被调用的接收模块调用对应的回馈协议接口的对象。通过将发送协议接口桥接上回馈协议接口,并构建发送类的对象和回馈协议接口的对象间的映射关系,实现了模块间快速高效地消息回馈。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种Android系统的模块桥接方法、装置、电子设备及存储介质。
背景技术
事件总线(Event Bus),是一个Android端优化的publish/subscribe消息总线,其简化了应用程序内各组件间、组件与后台线程间的通信,常被用于实现Android系统中各模块之间的信息桥接。通过事件总线实现Android系统的模块桥接的不足之处至少包括,若通过消息总线方式实现消息回馈功能,则需要监听或轮询来实现回馈,这种回馈方式消息延迟高,效率低,系统开销大,数据类型受限,消息体类型需要多次转换等缺陷。
发明内容
有鉴于此,本发明实施例提供一种Android系统的模块桥接方法、装置、电子设备及存储介质,实现了模块间快速高效地消息回馈,节省系统开销,且数据兼容性佳。
第一方面,本发明实施例提供了一种Android系统的模块桥接方法,包括:
将预定义的回馈协议接口套接至发送协议接口中,其中所述回馈协议接口中的协议函数包括泛型回馈参数,所述发送协议接口中的协议函数包括泛型发送参数;
定义发送类,所述发送类继承所述发送协议接口,并复写所述发送协议接口中的协议函数;
构建至少一个发送类的对象到至少一个回馈协议接口的对象的第一MAP映射关系;求取至少一个发送类的对象的哈希编码,并构建至少一个发送类的对象的哈希编码到对应的第一MAP映射关系的第二MAP映射关系;
基于Android系统的广播机制,控制发送模块发起对至少一个发送类的对象的调用,并获取调用的发送类的对象的哈希编码;根据获取的发送类的对象的哈希编码、所述第一MAP映射关系和第二MAP映射关系,控制被调用的接收模块调用对应的回馈协议接口的对象。
可选的,所述构建至少一个发送类的对象到至少一个回馈协议接口的对象的第一MAP映射关系,包括:
构建所述发送类的对象的第一列表集合;
遍历所述第一列表集合,并确定与当前遍历的发送类的对象对应的回馈协议接口的对象,基于所述当前遍历的发送类的对象和对应的回馈协议接口的对象构建第一MAP映射关系,直至遍历完毕第一列表集合为止。
可选的,所述求取至少一个发送类的对象的哈希编码,并构建至少一个发送类的对象的哈希编码到对应的第一MAP映射关系的第二MAP映射关系,包括:
轮询第一MAP映射关系,并确定当前轮询的第一MAP映射关系中发送类的对象的哈希编码;
基于所述哈希编码和对应的第一MAP映射关系构建第二MAP映射关系,直到轮询完毕全部第一MAP映射关系为止。
可选的,所述Android系统的模块桥接方法,还包括:
构建至少一个回馈协议接口的对象到至少一个发送类的对象的第三MAP映射关系;求取至少一个回馈协议接口的对象的哈希编码,并构建至少一个回馈协议接口的对象的哈希编码到对应的第三MAP映射关系的第四MAP映射关系;
相应的,在所述控制被调用的接收模块调用对应的回馈协议接口的对象之后,还包括:
控制所述发送模块接收回馈协议接口的对象的回馈信息,并获取调用的回馈协议接口的对象的哈希编码;根据获取的回馈协议接口的对象的哈希编码、所述第三MAP映射关系和第四MAP映射关系,查询对应的发送类的对象;根据所述回馈信息,确定查询的发送类的对象的调用情况。
可选的,在所述定义发送类之后,还包括:
预先初始化两个以上同一发射类的对象,启用所述两个以上同一发射类的对象中的任意一个;
若根据当前启用的同一发射类的对象调用对应的回馈协议接口的对象失败,则启用剩余同一发射类的对象中的任意一个,以根据重新启用的同一发射类的对象调用对应的回馈协议接口的对象。
进一步的,所述根据当前启用的同一发射类的对象调用对应的回馈协议接口的对象失败,包括:
每次当前启用的同一发射类的对象调用对应的回馈协议接口的对象失败时,预设的全局变量的数值加一,其中所述全局变量的初始值为零;
判断所述全局变量的数值是否达到预设数值,若是则确定调用对应的回馈协议接口的对象失败。
进一步的,Android系统的模块桥接方法,还包括:
若全部同一发射类的对象皆启用后仍调用对应的回馈协议接口的对象失败,则进行调用失败警告。
第二方面,本发明实施例提供了一种Android系统的模块桥接装置,包括:
接口套接模块,用于将预定义的回馈协议接口套接至发送协议接口中,其中所述回馈协议接口中的协议函数包括泛型回馈参数,所述发送协议接口中的协议函数包括泛型发送参数;
发送类定义模块,用于定义发送类,所述发送类继承所述发送协议接口,并复写所述发送协议接口中的协议函数;
映射关系构建模块,用于构建至少一个发送类的对象到至少一个回馈协议接口的对象的第一MAP映射关系;求取至少一个发送类的对象的哈希编码,并构建至少一个发送类的对象的哈希编码到对应的第一MAP映射关系的第二MAP映射关系;
桥接实现模块,用于基于Android系统的广播机制,控制发送模块发起对至少一个发送类的对象的调用,并获取调用的发送类的对象的哈希编码;根据获取的发送类的对象的哈希编码、所述第一MAP映射关系和第二MAP映射关系,控制被调用的接收模块调用对应的回馈协议接口的对象。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的Android系统的模块桥接方法。
第四方面,本发明实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时实现如上述第一方面所述的Android系统的模块桥接方法。
本发明实施例提供的一种Android系统的模块桥接方法、装置、电子设备及存储介质,其中该方法包括:将预定义的回馈协议接口套接至发送协议接口中;定义发送类来继承发送协议接口;构建发送类的对象到回馈协议接口的对象的第一MAP映射关系;求取发送类的对象的哈希编码,并构建该哈希编码到对应的第一MAP映射关系的第二MAP映射关系;基于Android系统的广播机制,控制发送模块发起对发送类的对象的调用,并获取调用的发送类的对象的哈希编码;根据获取的哈希编码和上述映射关系,控制被调用的接收模块调用对应的回馈协议接口的对象。
通过在发送协议接口中的协议函数中定义回馈协议接口的对象作为参数,实现了将发送协议接口桥接上回馈协议接口,从而摒弃通过消息总线的方式的信息转发,无需通过监听或轮询实现回馈,消息回馈延迟低,效率高,且节省了系统开销;通过将发送协议接口设计为多级泛型协议,增加了协议的兼容性和规范性,消息桥接过程无需消息体类型进行多次装换,使得消息回馈更加高效;通过构建发送类的对象和回馈协议接口的对象间的映射关系,实现了模块间的针对不同类型调用的消息回馈桥接。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。
图1为本发明实施例一提供的一种Android系统的模块桥接方法流程示意图;
图2为本发明实施例二提供的一种Android系统的模块桥接方法流程示意图;
图3为本发明实施例三提供的一种Android系统的模块桥接装置结构示意图;
图4为本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。
实施例一
图1为本发明实施例一提供的一种Android系统的模块桥接方法流程示意图,本实施例可适用于Android系统中模块之间进行桥接的情况。该方法可以由本发明实施例提供的Android系统的模块桥接装置来执行,该桥接装置采用软件和/或硬件的方式实现,优选是配置于电子设备中,例如计算机设备中。
参见图1,本发明实施例中提供的Android系统的模块桥接方法,具体包括如下步骤:
S110、将预定义的回馈协议接口套接至发送协议接口中,其中回馈协议接口中的协议函数包括泛型回馈参数,发送协议接口中的协议函数包括泛型发送参数。
本发明实施例中,旨在实现接收模块被发送模块调用时,可具备消息回馈功能。因此,可首先进行回馈协议接口的定义设计,具体的定义语句可以如下所示:
Public interface IOnRes<R>{
Void receive(R data)}
上述语句定义了回馈协议接口内容,其中回馈协议接口的名称可以为IOnRes<R>,但不限于此;其中回馈协议接口中的协议函数为receive()函数,当接收模块调用该协议函数时,发送模块可接收到相应的回馈消息;其中receive()函数包括泛型回馈参数R,通过将回馈参数设置为泛型变量,可以实现将具体的回馈数据类型延迟到receive()函数被调用时再来动态确定,能够兼容回馈数据的多态,这样就极大的提高了程序的可扩展性设计,保障了回馈协议接口的兼容性。
本发明实施例中,进一步对发送协议接口进行了定义设计,并在发送协议接口的协议函数中定义了两个参数,其一为泛型的发送参数,其二为回馈协议接口的对象。通过将发送参数设置为泛型函数,能够实现兼容发送数据的多态,同时回馈协议接口的对象也为泛型协议对象,因此实现了多级泛型的设计。通过将回馈协议接口的对象作为发送协议接口中的一项参数,可以实现将回馈协议接口套接到发送协议接口中,从而通过套接结合可以将两套协议统一成一套协议来使用。当发送协议接口被调用时,发送模块可向接收模块发送泛型发送参数;接收模块在接收到泛型发送参数之后,可触发调用回馈协议接口,从而回馈泛型回馈参数R。
具体的,定义发送协议接口的语句可以如下所示:
Public interface Itransf<S,R>{
Void sendData(S sendData,IOnRes<R>res)
}
上述语句定义了发送协议接口内容,其中发送协议接口的名称可以为Itransf<S,R>,但不限于此;其中发送协议接口中的协议函数为sendData()函数,当发送模块调用该协议函数时,接收模块可接收到泛型发送参数S,并且可调用回馈协议接口的对象IOnRes<R>res。其中,不同发送协议接口的对象所调用的回馈协议接口的对象IOnRes<R>res并不相同,而如何在调用某发送协议接口的对象时,调用特定对应的回馈协议接口对象,可具体参见步骤S140。
S120、定义发送类,发送类继承发送协议接口,并复写发送协议接口中的协议函数。
本发明实施例中,定义发送类来继承发送接口协议并复写其中的协议函数,具体的定义语句可如下所示:
Class TransfImpl<S,R>implements Itransf<S,R>{
Void sendData(S sendData,IOnRes<R>res){}
}
上述语句定义了发送类的名称是TransfImpl<S,R>,发送类通过implements语句继承了发送协议接口Itransf<S,R>,并复写了其中的sendData()函数。其中实现发送协议接口的发送类也是一个泛型类,且有两个泛型参数<S,R>,实现类中需要将该两个泛型参数透传到发送协议接口Itransf<S,R>中来使用。
S130、构建至少一个发送类的对象到至少一个回馈协议接口的对象的第一MAP映射关系;求取至少一个发送类的对象的哈希编码,并构建至少一个发送类的对象的哈希编码到对应的第一MAP映射关系的第二MAP映射关系。
本发明实施例中,在定义发送类后可进一步定义至少一个发送类的对象,以及至少一个回馈协议接口的对象。当发送模块调用不同发送类对象时,期望实现对具体的不同的发送协议接口的调用,因此可以通过设置MAP数据结构方式构建一个或多个发送类的对象到一个或多个回馈协议接口的对象之间的映射关系,且多条映射关系可存储至预设映射集合中进行统一维护管理。
本发明实施例中,构建至少一个发送类的对象到至少一个回馈协议接口的对象的第一MAP映射关系,具体例如为构建MAP<TransfImpl<S,R>,IOnRes<R>res>,即构建由发送类的对象TransfImpl<S,R>作为键,映射到回馈协议接口的对象IOnRes<R>res作为值的一一映射关系。由于TransfImpl<S,R>是一个对象,对象作为key的不足之处为,后期定位时不太容易获取key的信息,在次基础上进一步构建了数字N与MAP<TransfImpl<S,R>,IOnRes<R>res>之间的映射关系,这个数字N即为发送类的对象TransfImpl<S,R>的哈希编码hashCode。由于数字N是方便存储的,因此提高了映射关系中发送类的对象获取的效率性。构建上述多级映射关系的封装语句,具体可以为MAP<Integer,MAP<TransfImpl<S,R>,IOnRes<R>res>>,该封装设计构建了由Integer到MAP<TransfImpl<S,R>,IOnRes<R>res>集合的映射关系,即第二MAP映射关系。
通过构建发送类的对象到回馈协议接口的对象的映射关系,可以实现发送模块调用不同发送类的对象时,被调用的接收模块调用相应的回馈协议接口的对象,从而实现被调用的接收模块可针对发送参数向发送模块发送回馈参数,有利于实现发送模块和接收模块间的消息回馈桥接。
S140、基于Android系统的广播机制,控制发送模块发起对至少一个发送类的对象的调用,并获取调用的发送类的对象的哈希编码;根据获取的发送类的对象的哈希编码、第一MAP映射关系和第二MAP映射关系,控制被调用的接收模块调用对应的回馈协议接口的对象。
本发明实施例中,基于Android系统的广播机制,可控制发送模块调用至少一个发送类的对象,且当被调用的发送类的对象为多个时,即多个接收模块可接收到该发送模块的发送参数,能够实现数据多端发送的功能。
当发送模块发起对至少一个发送类的对象的调用时,可获取调用的发送类的对象的hashCode参数,通过类型为Inetger的hashCode参数和第二MAP映射关系,可获取到MAP<TransfImpl<S,R>,IOnRes<R>res>对象,通过主动轮询MAP<TransfImpl<S,R>,IOnRes<R>res>对象中发送类的对象的信息,可确定当前调用的发送类的对象,以及根据该第一MAP映射关系,可以获取到当前调用的发送类的对象对应的回馈协议接口的对象,从而实现了哈希编码key到回馈参数的映射。
进一步的,构建至少一个发送类的对象到至少一个回馈协议接口的对象的第一MAP映射关系,包括:构建发送类的对象的第一列表集合;遍历第一列表集合,并确定与当前遍历的发送类的对象对应的回馈协议接口的对象,基于当前遍历的发送类的对象和对应的回馈协议接口的对象构建第一MAP映射关系,直至遍历完毕第一列表集合为止。
其中,发送类的对象的第一列表结合可以是List<TransfImpl<S,R>>sendList。通过遍历第一列表集合,并分别确定每个当前遍历的对象TransfImpl<S,R>对应的回馈协议接口的对象IOnRes<R>res,同时构建第一MAP映射关系MAP<TransfImpl<S,R>,IOnRes<R>res>,可以保证第一MAP映射关系完整有序的构建。
进一步的,求取至少一个发送类的对象的哈希编码,并构建至少一个发送类的对象的哈希编码到对应的第一MAP映射关系的第二MAP映射关系,包括:轮询第一MAP映射关系,并确定当前轮询的第一MAP映射关系中发送类的对象的哈希编码;基于哈希编码和对应的第一MAP映射关系构建第二MAP映射关系,直到轮询完毕全部第一MAP映射关系为止。
其中,由于第一MAP映射关系中TransfImpl<S,R>不容易获取,可以通过主动轮询MAP<TransfImpl<S,R>,IOnRes<R>res>对象中发送类的对象的信息,计算当前轮询的发送类的对象的哈希编码,同时构建第二MAP映射关系MAP<Integer,MAP<TransfImpl<S,R>,IOnRes<R>res>>,可以保证第二MAP映射关系完整有序的构建。
可选的,在定义发送类之后,还包括:预先初始化两个以上同一发射类的对象,启用两个以上同一发射类的对象中的任意一个;若根据当前启用的同一发射类的对象调用对应的回馈协议接口的对象失败,则启用剩余同一发射类的对象中的任意一个,以根据重新启用的同一发射类的对象调用对应的回馈协议接口的对象。
进一步的,根据当前启用的同一发射类的对象调用对应的回馈协议接口的对象失败,包括:每次当前启用的同一发射类的对象调用对应的回馈协议接口的对象失败时,预设的全局变量的数值加一,其中全局变量的初始值为零;判断全局变量的数值是否达到预设数值,若是则确定调用对应的回馈协议接口的对象失败。
进一步的,Android系统的模块桥接方法,还包括:若全部同一发射类的对象皆启用后仍调用对应的回馈协议接口的对象失败,则进行调用失败警告。
本发明实施例中,针对每一个发射类的对象,可以预先初始化多个对象,并首先激活启用其中一个作为常用对象,在常用发射类的对象不能正常使用时,可依次激活并启动其他剩余的映射关系对象,从而可以实现消息桥接过程中的自修复功能。具体的,可通过标记全局变量的方式来记录调用对应的回馈协议接口的对象失败的失败次数,首先可设置全局变量的初始值为零,每次调用失败时该全局变量的数值会加一。全局变量的数值更新之后,可判断其数值是否达到预设数值,若没有达到预设数值,则可自动触发调用重试,直至调用成功或全局变量达到预设数值为止;若全局变量的数值达到预设数值,则可触发自动修复功能,即启用剩余同一发射类的对象中的任意一个,以根据重新启用的同一发射类的对象调用对应的回馈协议接口的对象,直到调用成功为止。此外,若最后一个发射类的对象依旧调用失败了,此时就可出发失败警告信息,以通知用户消息无法正常桥接,需进行修复处理。
本实施例提供的一种Android系统的模块桥接方法,通过在发送协议接口中的协议函数中定义回馈协议接口的对象作为参数,实现了将发送协议接口桥接上回馈协议接口,从而摒弃通过消息总线的方式的信息转发,无需通过监听或轮询实现回馈,消息回馈延迟低,效率高,且节省了系统开销;通过将发送协议接口设计为多级泛型协议,增加了协议的兼容性和规范性,消息桥接过程无需消息体类型进行多次装换,使得消息回馈更加高效;通过构建发送类的对象和回馈协议接口的对象间的映射关系,实现了模块间的针对不同类型调用的消息回馈桥接。
实施例二
本实施例在上述实施例基础上,对构建至少一个回馈协议接口的对象到至少一个发送类的对象之间的映射关系进行了优化,能够实现根据回馈协议接口的对象对发送类的对象进行查询。本实施例与上述实施例提出的Android系统的模块桥接方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例。
图2为本发明实施例二提供的一种Android系统的模块桥接方法流程示意图。参见图2,本发明实施例中提供的Android系统的模块桥接方法,包括:
S210、将预定义的回馈协议接口套接至发送协议接口中,其中回馈协议接口中的协议函数包括泛型回馈参数,发送协议接口中的协议函数包括泛型发送参数。
S220、定义发送类,发送类继承发送协议接口,并复写发送协议接口中的协议函数。
S231、构建至少一个发送类的对象到至少一个回馈协议接口的对象的第一MAP映射关系;求取至少一个发送类的对象的哈希编码,并构建至少一个发送类的对象的哈希编码到对应的第一MAP映射关系的第二MAP映射关系。
S232、构建至少一个回馈协议接口的对象到至少一个发送类的对象的第三MAP映射关系;求取至少一个回馈协议接口的对象的哈希编码,并构建至少一个回馈协议接口的对象的哈希编码到对应的第三MAP映射关系的第四MAP映射关系。
其中,构建至少一个回馈协议接口的对象到至少一个发送类的对象的第三MAP映射关系,包括:构建回馈协议的对象的第二列表集合List<IOnRes<R>>receiveList;遍历第二列表集合,并确定与当前遍历的回馈协议接口的对象IOnRes<R>res对应的发送类的对象TransfImpl<S,R>,基于当前遍历的回馈协议接口的对象和对应的发送类的对象构建第三MAP映射关系MAP<IOnRes<R>res,TransfImpl<S,R>>,直至遍历完毕第二列表集合为止。
其中,求取至少一个回馈协议接口的对象的哈希编码,并构建至少一个回馈协议接口的对象的哈希编码到对应的第三MAP映射关系的第四MAP映射关系,包括:轮询第三MAP映射关系,并确定当前轮询的第三MAP映射关系中回馈协议接口的对象IOnRes<R>res的哈希编码hashCode;基于哈希编码和对应的第三MAP映射关系构建第四MAP映射关系MAP<Integer,MAP<IOnRes<R>res,TransfImpl<S,R>>,直到轮询完毕全部第四MAP映射关系为止。
通过将Integer类型的hashcode描述为IOnRes<R>res的hashCode信息,即能够构建至少一个回馈协议接口的对象到至少一个发送类的对象的映射关系。示例性的,如果Integer为TransfImpl<S,R>对象的hashCode,那么其值为是一个MAP<TransfImpl<S,R>,IOnRes<R>res>映射关系,如果Integer为IOnRes<R>res对象的hashCode,那么其值是一个MAP<IOnRes<R>res,TransfImpl<S,R>>的映射关系。通过这种设计能够根据接收的回馈参数快速发现查找发送类的对象,有利于了解发送类的对象的调用情况。
S241、基于Android系统的广播机制,控制发送模块发起对至少一个发送类的对象的调用,并获取调用的发送类的对象的哈希编码;根据获取的发送类的对象的哈希编码、第一MAP映射关系和第二MAP映射关系,控制被调用的接收模块调用对应的回馈协议接口的对象。
S242、控制发送模块接收回馈协议接口的对象的回馈信息,并获取调用的回馈协议接口的对象的哈希编码;根据获取的回馈协议接口的对象的哈希编码、第三MAP映射关系和第四MAP映射关系,查询对应的发送类的对象;根据回馈信息,确定查询的发送类的对象的调用情况。
本发明实施例中个,回馈协议接口的对象被接收模块调用后,可向发送模块发送回馈信息,该回馈信息包括泛型回馈参数R。同时在接收回馈信息时,可获取调用的回馈协议接口的对象的哈希编码。通过类型为Inetger的调用的回馈协议接口的对象的哈希编码hashCode参数和第四MAP映射关系,可获取到MAP<IOnRes<R>res,TransfImpl<S,R>>对象,通过主动轮询MAP<IOnRes<R>res,TransfImpl<S,R>>对象中回馈协议接口的对象的信息,可确定调用的发送类的对象,以及根据该第三MAP映射关系,可以查询得到当前调用的回馈协议接口的对象对应的发送类的对象。进一步结合回馈信息的内容,可确定查询的发送类的对象的调用情况,例如回馈信息为“调用成功”,则确定发送类的对象调用成功。
本发明实施例在上述实施例基础上,对构建至少一个回馈协议接口的对象到至少一个发送类的对象之间的映射关系进行了优化,能够实现根据回馈协议接口的对象对发送类的对象进行查询。此外,本发明实施例与上述实施例提出的Android系统的模块桥接方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,且本实施例与上述实施例具有相同的有益效果。
实施例三
图3为本发明实施例三提供的一种Android系统的模块桥接装置结构示意图,本实施例可适用于Android系统中模块之间进行桥接的情况。应用该桥接装置可以实现本发明任一实施例所提供的Android系统的模块桥接方法。
参见图3所示,本发明实施例中提供的Android系统的模块桥接装置包括:
接口套接模块310,用于将预定义的回馈协议接口套接至发送协议接口中,其中回馈协议接口中的协议函数包括泛型回馈参数,发送协议接口中的协议函数包括泛型发送参数;
发送类定义模块320,用于定义发送类,发送类继承发送协议接口,并复写发送协议接口中的协议函数;
映射关系构建模块330,用于构建至少一个发送类的对象到至少一个回馈协议接口的对象的第一MAP映射关系;求取至少一个发送类的对象的哈希编码,并构建至少一个发送类的对象的哈希编码到对应的第一MAP映射关系的第二MAP映射关系;
桥接实现模块340,用于基于Android系统的广播机制,控制发送模块发起对至少一个发送类的对象的调用,并获取调用的发送类的对象的哈希编码;根据获取的发送类的对象的哈希编码、第一MAP映射关系和第二MAP映射关系,控制被调用的接收模块调用对应的回馈协议接口的对象。
可选的,映射关系构建模块,具体用于:构建发送类的对象的第一列表集合;遍历第一列表集合,并确定与当前遍历的发送类的对象对应的回馈协议接口的对象,基于当前遍历的发送类的对象和对应的回馈协议接口的对象构建第一MAP映射关系,直至遍历完毕第一列表集合为止。
可选的的,映射关系构建模块,还具体用于:轮询第一MAP映射关系,并确定当前轮询的第一MAP映射关系中发送类的对象的哈希编码;基于哈希编码和对应的第一MAP映射关系构建第二MAP映射关系,直到轮询完毕全部第一MAP映射关系为止。
可选的,映射关系构建模块,还具体用于:构建至少一个回馈协议接口的对象到至少一个发送类的对象的第三MAP映射关系;求取至少一个回馈协议接口的对象的哈希编码,并构建至少一个回馈协议接口的对象的哈希编码到对应的第三MAP映射关系的第四MAP映射关系;
相应的,桥接实现模块,还具体用于:控制发送模块接收回馈协议接口的对象的回馈信息,并获取调用的回馈协议接口的对象的哈希编码;发送类查询子模块,用于根据获取的回馈协议接口的对象的哈希编码、第三MAP映射关系和第四MAP映射关系,查询对应的发送类的对象;调用情况确定子模块,用于根据回馈信息,确定查询的发送类的对象的调用情况。
可选的,模块桥接装置,还包括:
激活模块,用于在定义发射类之后,预先初始化两个以上同一发射类的对象,启用两个以上同一发射类的对象中的任意一个;若根据当前启用的同一发射类的对象调用对应的回馈协议接口的对象失败,则启用剩余同一发射类的对象中的任意一个,以根据重新启用的同一发射类的对象调用对应的回馈协议接口的对象。
进一步的,激活模块,具体用于:每次当前启用的同一发射类的对象调用对应的回馈协议接口的对象失败时,预设的全局变量的数值加一,其中全局变量的初始值为零;判断全局变量的数值是否达到预设数值,若是则确定调用对应的回馈协议接口的对象失败。
进一步的,模块桥接装置,还包括:
警告模块,用于若全部同一发射类的对象皆启用后仍调用对应的回馈协议接口的对象失败,则进行调用失败警告。
本发明实施例所提供的Android系统的模块桥接装置可执行本发明任一实施例所提供的Android系统的模块桥接方法,具备执行方法相应的功能模块和有益效果。未详尽描述的技术细节,可参见本发明任一实施例所提供的Android系统的模块桥接方法。
实施例四
图4为本发明实施例四提供的一种电子设备的结构示意图。图4示出了适于用来实现本发明任一实施方式的示例性电子设备12的框图。图4显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备12典型的是承担信息加密、解密功能的电子设备。
如图4所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,存储器28,连接不同组件(包括存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
电子设备12典型地包括多种计算机可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机装置可读介质,例如随机存取存储器(Random Access Memory,RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品40,该程序产品40具有一组程序模块42,这些程序模块被配置以执行本发明各实施例的功能。程序产品40,可以存储在例如存储器28中,这样的程序模块42包括但不限于一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、鼠标、摄像头等和显示器)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网WideArea Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)装置、磁带驱动器以及数据备份存储装置等。
处理器16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的Android系统的模块桥接方法,该方法包括:
将预定义的回馈协议接口套接至发送协议接口中,其中回馈协议接口中的协议函数包括泛型回馈参数,发送协议接口中的协议函数包括泛型发送参数;定义发送类,发送类继承发送协议接口,并复写发送协议接口中的协议函数;构建至少一个发送类的对象到至少一个回馈协议接口的对象的第一MAP映射关系;求取至少一个发送类的对象的哈希编码,并构建至少一个发送类的对象的哈希编码到对应的第一MAP映射关系的第二MAP映射关系;基于Android系统的广播机制,控制发送模块发起对至少一个发送类的对象的调用,并获取调用的发送类的对象的哈希编码;根据获取的发送类的对象的哈希编码、第一MAP映射关系和第二MAP映射关系,控制被调用的接收模块调用对应的回馈协议接口的对象。
当然,本领域技术人员可以理解,处理器还可以实现本发明任一实施例所提供的Android系统的模块桥接方法。
实施例五
本发明实施例五还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的Android系统的模块桥接方法,该方法包括:
将预定义的回馈协议接口套接至发送协议接口中,其中回馈协议接口中的协议函数包括泛型回馈参数,发送协议接口中的协议函数包括泛型发送参数;定义发送类,发送类继承发送协议接口,并复写发送协议接口中的协议函数;构建至少一个发送类的对象到至少一个回馈协议接口的对象的第一MAP映射关系;求取至少一个发送类的对象的哈希编码,并构建至少一个发送类的对象的哈希编码到对应的第一MAP映射关系的第二MAP映射关系;基于Android系统的广播机制,控制发送模块发起对至少一个发送类的对象的调用,并获取调用的发送类的对象的哈希编码;根据获取的发送类的对象的哈希编码、第一MAP映射关系和第二MAP映射关系,控制被调用的接收模块调用对应的回馈协议接口的对象。
当然,本发明实施例所提供的一种计算机可读存储介质,其上存储的计算机程序不限于如上的方法操作,还可以执行本发明任一实施例所提供的Android系统的模块桥接方法中的相关操作。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种Android系统的模块桥接方法,其特征在于,包括:
将预定义的回馈协议接口套接至发送协议接口中,其中所述回馈协议接口中的协议函数包括泛型回馈参数,所述发送协议接口中的协议函数包括两个参数,一个是泛型发送参数,另一个是回馈协议接口的对象,所述回馈协议接口的对象为泛型协议对象;通过将所述回馈协议接口的对象作为所述发送协议接口中的一项参数,实现将回馈协议接口套接到发送协议接口中;
定义发送类,所述发送类继承所述发送协议接口,并复写所述发送协议接口中的协议函数;
构建至少一个发送类的对象到至少一个回馈协议接口的对象的第一MAP映射关系;求取至少一个发送类的对象的哈希编码,并构建至少一个发送类的对象的哈希编码到对应的第一MAP映射关系的第二MAP映射关系;
基于Android系统的广播机制,控制发送模块发起对至少一个发送类的对象的调用,并获取调用的发送类的对象的哈希编码;根据获取的发送类的对象的哈希编码、所述第一MAP映射关系和第二MAP映射关系,控制被调用的接收模块调用对应的回馈协议接口的对象。
2.根据权利要求1所述的方法,其特征在于,所述构建至少一个发送类的对象到至少一个回馈协议接口的对象的第一MAP映射关系,包括:
构建所述发送类的对象的第一列表集合;
遍历所述第一列表集合,并确定与当前遍历的发送类的对象对应的回馈协议接口的对象,基于所述当前遍历的发送类的对象和对应的回馈协议接口的对象构建第一MAP映射关系,直至遍历完毕第一列表集合为止。
3.根据权利要求2所述的方法,其特征在于,所述求取至少一个发送类的对象的哈希编码,并构建至少一个发送类的对象的哈希编码到对应的第一MAP映射关系的第二MAP映射关系,包括:
轮询第一MAP映射关系,并确定当前轮询的第一MAP映射关系中发送类的对象的哈希编码;
基于所述哈希编码和对应的第一MAP映射关系构建第二MAP映射关系,直到轮询完毕全部第一MAP映射关系为止。
4.根据权利要求1所述的方法,其特征在于,还包括:
构建至少一个回馈协议接口的对象到至少一个发送类的对象的第三MAP映射关系;求取至少一个回馈协议接口的对象的哈希编码,并构建至少一个回馈协议接口的对象的哈希编码到对应的第三MAP映射关系的第四MAP映射关系;
相应的,在所述控制被调用的接收模块调用对应的回馈协议接口的对象之后,还包括:
控制所述发送模块接收回馈协议接口的对象的回馈信息,并获取调用的回馈协议接口的对象的哈希编码;根据获取的回馈协议接口的对象的哈希编码、所述第三MAP映射关系和第四MAP映射关系,查询对应的发送类的对象;根据所述回馈信息,确定查询的发送类的对象的调用情况。
5.根据权利要求1-4任一所述的方法,其特征在于,在所述定义发送类之后,还包括:
预先初始化两个以上同一发射类的对象,启用所述两个以上同一发射类的对象中的任意一个;
若根据当前启用的同一发射类的对象调用对应的回馈协议接口的对象失败,则启用剩余同一发射类的对象中的任意一个,以根据重新启用的同一发射类的对象调用对应的回馈协议接口的对象。
6.根据权利要求5所述的方法,其特征在于,所述根据当前启用的同一发射类的对象调用对应的回馈协议接口的对象失败,包括:
每次当前启用的同一发射类的对象调用对应的回馈协议接口的对象失败时,预设的全局变量的数值加一,其中所述全局变量的初始值为零;
判断所述全局变量的数值是否达到预设数值,若是则确定调用对应的回馈协议接口的对象失败。
7.根据权利要求5所述的方法,其特征在于,还包括:
若全部同一发射类的对象皆启用后仍调用对应的回馈协议接口的对象失败,则进行调用失败警告。
8.一种Android系统的模块桥接装置,其特征在于,包括:
接口套接模块,用于将预定义的回馈协议接口套接至发送协议接口中,其中所述回馈协议接口中的协议函数包括泛型回馈参数,所述发送协议接口中的协议函数包括两个参数,一个是泛型发送参数,另一个是回馈协议接口的对象,所述回馈协议接口的对象为泛型协议对象;通过将所述回馈协议接口的对象作为所述发送协议接口中的一项参数,实现将回馈协议接口套接到发送协议接口中;
发送类定义模块,用于定义发送类,所述发送类继承所述发送协议接口,并复写所述发送协议接口中的协议函数;
映射关系构建模块,用于构建至少一个发送类的对象到至少一个回馈协议接口的对象的第一MAP映射关系;求取至少一个发送类的对象的哈希编码,并构建至少一个发送类的对象的哈希编码到对应的第一MAP映射关系的第二MAP映射关系;
桥接实现模块,用于基于Android系统的广播机制,控制发送模块发起对至少一个发送类的对象的调用,并获取调用的发送类的对象的哈希编码;根据获取的发送类的对象的哈希编码、所述第一MAP映射关系和第二MAP映射关系,控制被调用的接收模块调用对应的回馈协议接口的对象。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的Android系统的模块桥接方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时实现如权利要求1-7中任一项所述的Android系统的模块桥接方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010258965.6A CN113495794B (zh) | 2020-04-03 | 2020-04-03 | 一种Android系统的模块桥接方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010258965.6A CN113495794B (zh) | 2020-04-03 | 2020-04-03 | 一种Android系统的模块桥接方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113495794A CN113495794A (zh) | 2021-10-12 |
CN113495794B true CN113495794B (zh) | 2022-09-09 |
Family
ID=77995162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010258965.6A Active CN113495794B (zh) | 2020-04-03 | 2020-04-03 | 一种Android系统的模块桥接方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113495794B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468572A (zh) * | 2014-12-08 | 2015-03-25 | 上海大学 | 一种Android手机语音远程控制菌种挑选仪的方法 |
CN106815021A (zh) * | 2016-12-30 | 2017-06-09 | 北京星辰美豆文化传播有限公司 | 一种应用的运行处理方法、装置及系统 |
CN109343983A (zh) * | 2018-09-30 | 2019-02-15 | 武汉斗鱼网络科技有限公司 | 功能模块间的信息交互方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729329B (zh) * | 2012-10-12 | 2018-01-19 | 深圳市中兴微电子技术有限公司 | 核间通信装置及方法 |
CN106453766B (zh) * | 2015-08-04 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 基于虚拟机的数据传输方法、装置及系统 |
-
2020
- 2020-04-03 CN CN202010258965.6A patent/CN113495794B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468572A (zh) * | 2014-12-08 | 2015-03-25 | 上海大学 | 一种Android手机语音远程控制菌种挑选仪的方法 |
CN106815021A (zh) * | 2016-12-30 | 2017-06-09 | 北京星辰美豆文化传播有限公司 | 一种应用的运行处理方法、装置及系统 |
CN109343983A (zh) * | 2018-09-30 | 2019-02-15 | 武汉斗鱼网络科技有限公司 | 功能模块间的信息交互方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113495794A (zh) | 2021-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200073710A1 (en) | Task scheduling method, apparatus, electronic device and storage medium | |
US11050814B2 (en) | Method, device and vehicle for message deduplication | |
CN111371898B (zh) | 一种消息监听方法、装置、设备及存储介质 | |
WO2021022710A1 (zh) | 消息队列处理方法、装置、电子设备及计算机非易失性可读存储介质 | |
CN109669787B (zh) | 数据传输方法及装置、存储介质、电子设备 | |
CN110881224B (zh) | 一种网络长连接方法、装置、设备及存储介质 | |
CN107817962B (zh) | 一种远程控制方法、装置、控制服务器及存储介质 | |
CN109495375B (zh) | Mqtt消息的处理方法、装置、电子设备及存储介质 | |
CN108833477B (zh) | 基于共享内存的消息传输方法、系统和装置 | |
CN111510499B (zh) | 一种通讯方法、装置、设备及存储介质 | |
CN113495794B (zh) | 一种Android系统的模块桥接方法、装置、电子设备及存储介质 | |
US8280950B2 (en) | Automatic client-server code generator | |
WO2023051315A1 (zh) | 应用控制方法、装置、电子设备及存储介质 | |
CN109445966B (zh) | 事件处理方法、装置、介质和计算设备 | |
CN113946376B (zh) | 负载调整方法、装置、电子设备及存储介质 | |
US20200099690A1 (en) | Process manager for digital communication | |
US20220052902A1 (en) | Method for managing remote device through management device | |
CN110134628B (zh) | 消息传输方法、装置、设备及存储介质 | |
CN109309583B (zh) | 基于分布式系统的信息获取方法、装置、电子设备和介质 | |
CN113726885A (zh) | 一种流量配额的调整方法和装置 | |
US8380938B2 (en) | Providing shared access to data storage resources across cluster computing environment boundaries | |
CN114844910B (zh) | 分布式存储系统的数据传输方法、系统、设备及介质 | |
CN109150612B (zh) | 一种用于无人车的基于分布式系统的检测方法及电子设备 | |
CN111385334A (zh) | 一种数据配送方法、装置、设备及存储介质 | |
CN115174588B (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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20211012 Assignee: Yidu Lehuo Network Technology Co.,Ltd. Assignor: WUHAN DOUYU YULE NETWORK TECHNOLOGY Co.,Ltd. Contract record no.: X2023980041383 Denomination of invention: A module bridging method, device, electronic device, and storage medium for Android system Granted publication date: 20220909 License type: Common License Record date: 20230908 |
|
EE01 | Entry into force of recordation of patent licensing contract |