三、RIL-JAVA的解析

(一)RIL-JAVA 发送命令的流程图

RIL-Java在本质上就是一个RIL代理,起到一个转发的作用,是Android Java概念空间中的电话系统的起点。在RIL-D的分析中,我们知道RILD建立了一个侦听套接口,等待RIL-Java的连接。一旦连接成 功,RIL-JAVA就可发起一个请求,并等待应答,并将结构发送到目标处理对象。在RIL-Java中,这个请求称为RILRequest。

Sender应该分为两部分架构,上层函数调用Command Interface将请求消息发送到Sender的架构。Sender接收到EVENT_SEND消息后,将请求发送到RILD的架构。Receiver 连接到RILD的服务套接口,接收读取RILD传递过来的Response Parcel。Response分为两种类型,一种是URC,一种是命令应答。对于URC将会直接分发到通知注册表中的Handler。而命令应答则通过 Receiver的异步通知机制传递到命令的发送者进行相应处理。

(二)请求数据包的解析与组合

在源代码中 RILRequest的mSerail就用作了Token。Token用来唯一标识每次发送的请求,并且Token将被传递到RILD,RILD在组装应 答是将Token写入,并传回到ril-java,ril-java根据该Token找到相应的Request对象。

(三) RIL—JAVA 的请求回应流程与通知流程

你可能感兴趣的:(telephony,RIL)