RILJ学习

今天重新看了下RIL,遇到问题去问老马的时候,他分享了一本android内核分析给我,这本书写得好透彻,估计作者将整个android系统从上到下都看过了,太牛了。看了这书后才发现什么是看Code该有的态度。默默回忆下我之前看Code乱七八糟的套路,内心极端鄙视自己。

 

RILJ

 

 

RIL.java相当于RIL的代理,起到消息转发的作用。RILJ一旦和RILD连接成功,就可以向RILD发送请求,RID接到请求后,再将消息转发给Moderm, Moderm进行一系列处理后,将最终结果按原路返回给RILJ。所以对于RILJ来讲,它需要具备发送和响应消息的功能。RILJ的设计者将RIL.java分为三大部分:RILRequest, RILSender, RILReceiver.

RILRequest用于创建新的Request,其中有个比较重要的参数是mSerial,这是一个递增的变量,用来唯一标示一个RILRequest。之所以说它重要,是因为它是从众多的RILRequest找出需要的那个RILRequest的唯一方式。当一个RILRequest发下去之后,底层肯定不会立即响应,有的时候又会有多个RILRequest同时响应,为了解决这个问题,设计者设计了一个RequestList. 在发送一个RILRequest的同时,将一个RR存放在RequestList中,RR中包含有mSerial,所以当消息回来时,系统会去这个RequestList里根据mSerial查下当前是哪个消息响应了,然后再做出响应的动作。

 

下面这个图是从老马给的书上截下来的,我看过好多遍RIL我都没想着能总结成这么一副图,感谢作者。


 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值