CN111813724B - Hidl接口适配系统、方法及相应设备、存储介质 - Google Patents
Hidl接口适配系统、方法及相应设备、存储介质 Download PDFInfo
- Publication number
- CN111813724B CN111813724B CN202010432139.9A CN202010432139A CN111813724B CN 111813724 B CN111813724 B CN 111813724B CN 202010432139 A CN202010432139 A CN 202010432139A CN 111813724 B CN111813724 B CN 111813724B
- Authority
- CN
- China
- Prior art keywords
- interface
- request
- socket
- hidl
- response
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
- Communication Control (AREA)
Abstract
本申请公开了HIDL接口适配系统、方法及相应设备、存储介质,用于包括第一Android系统和第二非Android系统的双系统设备,第一系统包括RILD层,RILD层对上层提供HIDL接口,第二系统包括具有socket接口的电话服务,HIDL接口适配系统在第一系统中设置有RIL适配层,其包括:socket收发模块,用于在其与第二系统的socket接口之间收发socket数据;适配模块,用于将请求进行转换并发送给第一系统的HIDL接口,及上报来自HIDL接口的响应和/或事件;解析模块,用于对来自socket收发模块的请求进行解包并发送给适配模块,及对来自适配模块的响应信息和/或事件信息打包并发送给socket收发模块。本发明能对hidl接口进行转换,对上层提供兼容的socket接口,从而其他非Android操作系统无需进行改动即可与hidl接口通信。
Description
技术领域
本申请涉及通信领域,尤其涉及HIDL接口适配系统、方法及相应设备、存储介质。
背景技术
对于Android系统+其他操作系统实现的双系统移动设备,Android系统包括应用层、Telephony框架层、RILJ层、RILD层和MODEM层,其他操作系统包括应用层、电话框架层和电话服务层,如图1所示。如果需要在两个系统支持电话业务,则需要在其他系统中也进行通信模块的适配。在anroid8.0之前,其他操作系统的电话服务是通过socket接口与Android系统的rild进行接口。
然而,在android系统使用8.0以上版本时,rild对上层提供HIDL接口,因而其他非android操作系统存在如何重新适配rild的问题。
发明内容
为了克服现有技术中存在的不足,本发明提供一种HIDL接口适配系统、方法及相应设备、存储介质,其能对hidl接口进行转换,对上层提供兼容的socket接口,从而其他非Android操作系统无需进行改动即可与hidl接口通信。
在本发明的第一方面,提供一种HIDL接口适配系统,用于包括第一Android系统和第二非Android系统的双系统设备,第一系统包括RILJ层、RILD层和MODEM层,RILD层对上层提供HIDL接口,第二系统包括具有socket接口的电话服务,在第一系统中设置有RIL适配层,所述RIL适配层包括:
socket收发模块,用于在其与第二系统的socket接口之间收发socket数据;
适配模块,用于将请求进行转换并发送给第一系统的HIDL接口,及上报来自HIDL接口的响应和/或事件;
解析模块,用于对来自socket收发模块的请求进行解包并发送给适配模块,及对来自适配模块的响应信息和/或事件信息打包并发送给socket收发模块。
在实施例中,所述适配模块包括:请求处理器,用于接收解析出的请求并调用与请求对应的IRadio接口,实现请求命令到IRadio接口的转换;响应处理器,用于继承IRadioResponse接口;事件处理器,用于继承IRadioIndication接口。
在实施例中,所述RIL适配器还包括初始化模块,用于响应于有客户端连接,调用IRadio::GetService();响应于调用成功,创建响应处理器和事件处理器,并注册到IRadio接口。
在实施例中,所述解析模块包括:请求子模块,用于解析从socket收发模块接收到的请求命令;响应子模块,用于调用相应的回调函数向socket收发模块上报响应;主动事件子模块,用于调用相应的回调函数向socket收发模块上报主动事件。
在本发明的第二方面,提供一种HIDL接口适配方法,用在包括第一Android系统和第二非Android系统的双系统设备中,第一系统包括RILJ层、RILD层和MODEM层,RILD层对上层提供HIDL接口,第二系统包括具有socket接口的电话服务,所述方法包括:
从第二系统的socket接口接收socket请求;
对接收到的socket请求进行解析;
对解析后的请求进行转换并发送给第一系统的HIDL接口;
接收来自HIDL接口的响应和/或事件上报;
对上报的响应信息和/或事件信息打包并发送给第二系统的socket接口。
在本发明的第三方面,提供一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实现根据本发明的第二方面的方法的步骤。
根据本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据本发明的第二方面的方法的步骤。
按照本发明,通过在Android系统中增加RIL适配层,对hidl接口进行转换,对上层提供兼容的socket接口,从而不需要对非android操作系统进行系统修改就可以增加对hidl接口的支持,原有电话服务可继续使用原socket接口,不需要改动,减少工作量,减少影响系统稳定性的可能。而且,交互流程没有大量数据,只有呼叫的请求和事件,RIL适配层的增加对工作效率的影响可忽略不计。
结合附图阅读本发明实施方式的详细描述后,本发明的其它特点和优点将变得更加清楚。
附图说明
图1为现有技术双系统通信业务实现结构示意图;
图2为根据本发明的双系统通信业务实现结构示意图;
图3为根据本发明实施例的RIL适配层的结构示意图;
图4为根据本发明方法的一实施例的流程图。
为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本发明所必要的细节,而省略其他细节。
具体实施方式
下面参照附图对本发明的实施方式和实施例进行详细说明。
通过下面给出的详细描述,本发明的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本发明优选实施例的同时,它们仅为说明目的给出。
图2示出了根据本发明的双系统通信业务实现结构示意图。双系统包括第一Android系统和第二非Android(其他)操作系统,Android系统包括应用层、Telephony框架层、RILJ层、RIL适配层、RILD层和MODEM层,其他操作系统包括应用层、电话框架层和电话服务层。第一系统的RILD层经HIDL接口、RIL适配层与第二系统的电话服务通信。
图3示出了根据本发明实施例的RIL适配层的结构示意图,RIL适配层包括socket收发模块310、解析模块320和适配模块330。
socket收发模块310采用rild socket设计,以便实现一致的socket接口,用于在其与第二系统的socket接口之间收发socket数据如接收请求、发送响应信息、发送事件信息等。
解析模块320用于使用标准parcel打包解包从而实现socket通信。解析模块包括:请求子模块,用于解析从socket收发模块接收到的请求parcel包并发送给适配模块;响应子模块,用于调用相应的回调函数向socket收发模块打包上报响应;及主动事件子模块,用于调用相应的回调函数向socket收发模块打包上报主动事件。
适配模块330,用于将请求进行转换并发送给第一系统的HIDL接口,及上报来自HIDL接口的响应和/或事件。适配模块包括:请求处理器,用于在解析parcel包后接收解析出的请求,request(请求)处理不实现功能逻辑,例如发送AT命令,而是组织参数数据并调用对应的IRadio接口,实现所有必须处理的request命令到IRadio接口的转换;响应处理器,用于继承IRadioResponse接口,实现了其中的多个接口成员函数,即实现必须处理的Request对应IRadio的IRadioResponse回调函数;事件处理器,用于继承IRadioIndication接口,实现必须处理的UnsolicicatedEvent对应IRadioIndication回调函数。
RIL适配层的工作流程如下:建立socket,并等待客户端连接。客户端是指上层业务处理模块(电话服务模块,对应RILJ),客户端先连接是为了保证业务处理模块已经正常运行,之后适配层注册到IRadio之后会马上有事件上报,客户端不会丢失事件。如果有客户端连接,则开始初始化IRadio接口,调用IRadio::GetService()。如果成功,则创建Response Handler和Indication Handler,并注册到IRadio接口。如果初始化IRadio成功,则开始循环收发socket数据,进行业务正常处理:接收request命令,解析后调用对应IRadio接口,之后response会自动调用回调函数上报响应;同时indication也会自动调用回调函数,上报主动事件。
例如,呼出过程如下:
1、上层应用发起拨号请求后,适配层服务socket接收到RIL_REQUEST_DIAL请求,使用parcel解析出被叫信息,例如被叫号码、clir、uus等,然后调用IRadio::dial()接口,向rild发送请求;
2、rild处理后,会回调hidl接口中注册的IRadioResponse::dialResponse()接口,RadioResponse Handler上报响应信息;
3、呼叫建立后,rild会回调hidl接口中注册的IRadioIndication::callStateChanged()接口,RadioIndication Handler上报呼叫事件RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED;
4、上层服务发送请求RIL_REQUEST_GET_CURRENT_CALLS,适配层服务解析后调用IRadio::getCurrentCalls()接口,向rild发送请求;
5、rild回调IRadioResponse::getCurrentCallsResponse()函数,返回所有已经建立的呼叫信息,RadioResponse Handler解析参数中呼叫信息数组,上报呼叫信息;
6、上层收到呼叫信息,解析后建立新的呼叫,更新呼叫状态信息;
7、被叫接听呼叫后,rild回调hidl接口中注册的IRadioIndication::callStateChanged()接口,重复3-5步骤,更新呼叫状态;
8、上层收到呼叫通话事件,执行调度音频资源、更新呼叫状态等动作,双方进入通话;
9、被叫挂机后,rild会回调hidl接口中注册的IRadioIndication::callStateChanged()接口,RadioIndication Handler上报呼叫状态信息RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED,重复3-5步骤,更新呼叫信息;
10、上层接收到呼叫结束的事件,执行RIL_REQUEST_LAST_CALL_FAIL_CAUSE请求,查询呼叫结束原因,适配层接收到后,调用IRadio::getLastCallFailCause()接口;
11、rild处理后,回调IRadio::getLastCallFailCauseResponse()接口,RadioReponse Handler解析结果后上报原因信息;
12、上层释放资源,结束呼叫。
再例如,接收短信过程如下:
1、rild收到短信后,会回调IRadioIndication::newSms()接口,RadioIndicationHandler从参数中获得pdu,然后打包RIL_UNSOL_RESPONSE_NEW_SMS事件上报;
2、上层服务收到新短信事件,解析后通知应用处理,发起RIL_REQUEST_SMS_ACKNOWLEDGE请求,适配层解析请求,调用IRadio::acknowledgeLastIncomingGsmSms()接口发送命令到rild;
3、rild处理请求,然后回调IRadioResponse::acknowledgeLastIncomingGsmSmsResponse()接口,RadioResponse Handler上报响应事件。
图4为根据本发明的HIDL接口适配方法的一实施例的流程图,该方法用在包括第一Android系统和第二非Android系统的双系统设备中,第一系统包括RILJ层、RILD层和MODEM层,RILD层对上层提供HIDL接口,第二系统包括具有socket接口的电话服务,该方法包括:
在步骤S402,从第二系统的socket接口接收socket请求;
在步骤S404,对接收到的socket请求进行解析;
在步骤S406,对解析后的请求进行转换并发送给第一系统的HIDL接口;
在步骤S408,接收来自HIDL接口的响应和/或事件上报;
在步骤S410,对上报的响应信息和/或事件信息打包并发送给第二系统的socket接口。
在另一实施例中,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现结合图4所示和所述的方法实施例或其它相应方法实施例的步骤,在此不再赘述。
在另一实施例中,本发明提供一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实现结合图4所示和所述的方法实施例或其它相应方法实施例的步骤,在此不再赘述。
在此所述的多个不同实施方式或者其特定特征、结构或特性可在本发明的一个或多个实施方式中适当组合。另外,在某些情形下,只要适当,流程图中和/或流水处理描述的步骤顺序可修改,并不必须精确按照所描述的顺序执行。另外,本发明的多个不同方面可使用软件、硬件、固件或者其组合和/或执行所述功能的其它计算机实施的模块或装置进行实施。本发明的软件实施可包括保存在计算机可读介质中并由一个或多个处理器执行的可执行代码。计算机可读介质可包括计算机硬盘驱动器、ROM、RAM、闪存、便携计算机存储介质如CD-ROM、DVD-ROM、闪盘驱动器和/或具有通用串行总线(USB)接口的其它装置,和/或任何其它适当的有形或非短暂计算机可读介质或可执行代码可保存于其上并由处理器执行的计算机存储器。本发明可结合任何适当的操作系统使用。
除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、元件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。
前面说明了本发明的一些优选实施例,但是应当强调的是,本发明不局限于这些实施例,而是可以本发明主题范围内的其它方式实现。本领域技术人员可以在本发明技术构思的启发和不脱离本发明内容的基础上对本发明做出各种变型和修改,这些变型或修改仍落入本发明的保护范围之内。
Claims (10)
1.一种HIDL接口适配系统,用于包括第一Android系统和第二非Android系统的双系统设备,第一系统包括RILJ层、RILD层和MODEM层,RILD层对上层提供HIDL接口,第二系统包括具有socket接口的电话服务,其特征在于,在第一系统中设置有RIL适配层,所述RIL适配层包括:
socket收发模块,用于在其与第二系统的socket接口之间收发socket数据;
适配模块,用于将请求进行转换并发送给第一系统的HIDL接口,及上报来自HIDL接口的响应和/或事件;
解析模块,用于对来自socket收发模块的请求进行解包并发送给适配模块,及对来自适配模块的响应信息和/或事件信息打包并发送给socket收发模块。
2.根据权利要求1所述的HIDL接口适配系统,其特征在于,所述适配模块包括:
请求处理器,用于接收解析出的请求并调用与请求对应的IRadio接口,实现请求命令到IRadio接口的转换;
响应处理器,用于继承IRadioResponse接口;
事件处理器,用于继承IRadioIndication接口。
3.根据权利要求2所述的HIDL接口适配系统,其特征在于,所述RIL适配层还包括初始化模块,用于
响应于有客户端连接,调用IRadio::GetService();
响应于调用成功,创建响应处理器和事件处理器,并注册到IRadio接口。
4.根据权利要求1所述的HIDL接口适配系统,其特征在于,所述解析模块包括:
请求子模块,用于解析从socket收发模块接收到的请求命令;
响应子模块,用于调用相应的回调函数向socket收发模块上报响应;
主动事件子模块,用于调用相应的回调函数向socket收发模块上报主动事件。
5.一种HIDL接口适配方法,用在包括第一Android系统和第二非Android系统的双系统设备中,第一系统包括RILJ层、RILD层和MODEM层,RILD层对上层提供HIDL接口,第二系统包括具有socket接口的电话服务,其特征在于,所述方法包括:
从第二系统的socket接口接收socket请求;
对接收到的socket请求进行解析;
对解析后的请求进行转换并发送给第一系统的HIDL接口;
接收来自HIDL接口的响应和/或事件上报;
对上报的响应信息和/或事件信息打包并发送给第二系统的socket接口。
6.根据权利要求5所述的方法,其特征在于,所述对解析后的请求进行转换并发送给第一系统的HIDL接口包括:
响应于解析后的请求,调用与该请求对应的IRadio接口,实现请求命令到IRadio接口的转换。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应于有客户端连接,调用IRadio::GetService();
响应于调用成功,创建响应处理器和事件处理器,并注册到IRadio接口,其中响应处理器用于继承IRadioResponse接口,事件处理器用于继承IRadioIndication接口。
8.根据权利要求5所述的方法,其特征在于,响应和/或事件的上报通过调用相应的回调函数实现。
9.一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实现根据权利要求5-8任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求5-8任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010432139.9A CN111813724B (zh) | 2020-05-20 | 2020-05-20 | Hidl接口适配系统、方法及相应设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010432139.9A CN111813724B (zh) | 2020-05-20 | 2020-05-20 | Hidl接口适配系统、方法及相应设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813724A CN111813724A (zh) | 2020-10-23 |
CN111813724B true CN111813724B (zh) | 2023-06-30 |
Family
ID=72848445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010432139.9A Active CN111813724B (zh) | 2020-05-20 | 2020-05-20 | Hidl接口适配系统、方法及相应设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813724B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115733884B (zh) * | 2021-08-25 | 2023-10-24 | 荣耀终端有限公司 | 请求的处理方法及相关装置 |
CN113590363B (zh) * | 2021-09-26 | 2022-02-25 | 北京鲸鲮信息系统技术有限公司 | 数据发送方法、装置、电子设备及存储介质 |
CN113806117B (zh) * | 2021-11-18 | 2022-10-18 | 抖音视界有限公司 | 双系统广播方法、装置、电子设备及计算机可读存储介质 |
CN114125053A (zh) * | 2021-11-19 | 2022-03-01 | 北京鲸鲮信息系统技术有限公司 | 跨系统的网络设备调用方法及装置、电子设备、存储介质 |
CN114679752B (zh) * | 2022-03-29 | 2024-04-19 | 青岛海信移动通信技术有限公司 | 双系统共享无线通信能力的方法及终端设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737428A (zh) * | 2019-10-21 | 2020-01-31 | Oppo广东移动通信有限公司 | 基于Hidl的通用接口设计方法、装置、终端及可读存储介质 |
CN110780929A (zh) * | 2019-09-18 | 2020-02-11 | 华为技术有限公司 | 调用硬件接口的方法及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10019298B2 (en) * | 2016-08-17 | 2018-07-10 | Google Llc | Middleware interface and middleware interface generator |
-
2020
- 2020-05-20 CN CN202010432139.9A patent/CN111813724B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110780929A (zh) * | 2019-09-18 | 2020-02-11 | 华为技术有限公司 | 调用硬件接口的方法及电子设备 |
CN110737428A (zh) * | 2019-10-21 | 2020-01-31 | Oppo广东移动通信有限公司 | 基于Hidl的通用接口设计方法、装置、终端及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
Android应用漏洞分析测试系统的设计与实现;刘仕远;《中国优秀硕士学位论文全文数据库 信息科技辑》;I138-107 * |
Also Published As
Publication number | Publication date |
---|---|
CN111813724A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111813724B (zh) | Hidl接口适配系统、方法及相应设备、存储介质 | |
WO2018059137A1 (zh) | 物联网终端接入装置及方法和计算机存储介质 | |
RU2523964C2 (ru) | Способ межпроцессного взаимодействия между разными приложениями в мобильном терминале и соответствующее устройство | |
WO2020248383A1 (zh) | 基于跨平台的数据处理方法、装置及计算机设备 | |
CN108712320B (zh) | 消息推送方法及装置 | |
CN113821363B (zh) | 一种进程间通讯方法及系统 | |
CN112596931B (zh) | 一种跨进程通信方法、装置、电子设备及存储介质 | |
CN101478439A (zh) | 统一业务管理平台、接口机和业务处理系统及处理方法 | |
CN110413259A (zh) | Android服务框架、实现扩展服务的方法及装置 | |
CN106357713B (zh) | 实现远程过程调用的方法和客户端装置以及服务器装置 | |
CN110620819B (zh) | 区块链交互方法、装置、计算机设备及可读存储介质 | |
CN103036917A (zh) | 客户端平台的实现方法及客户端平台 | |
CN113852718B (zh) | 语音通道建立方法、装置、电子设备及存储介质 | |
CN112969203B (zh) | 一种基于安卓系统平台的多种呼叫模式整合方法 | |
CN114401252A (zh) | 话务系统的呼叫方法以及话务系统 | |
CN114816785A (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN113824653A (zh) | 一种兼容多协议业务接入的方法和系统 | |
CN112764945B (zh) | 消息中心服务中间件系统 | |
US20050262229A1 (en) | Object conduit MIB for communicating over SNMP between distributed objects | |
CN112527535B (zh) | 一种基于原生WebView扩展应用的互动方法及终端 | |
CN101742007A (zh) | 利用Widget技术开放语音会议的方法和系统 | |
CN109885334B (zh) | 版本兼容系统和消息发送、接收方法 | |
CN110673970A (zh) | 一种基于web应用的跨进程调用系统及方法 | |
CN115834649A (zh) | 远程过程调用方法、装置及系统 | |
CN103347038A (zh) | 一种WEB服务器处理http报文的方法 |
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 |