Android6.0的phone应用源码分析(7)——RIL层框架分析2
来源:互联网 发布:typescript 调用js 编辑:程序博客网 时间:2024/05/16 18:01
这里再次 将Android6.0的phone应用源码分析(5)中最后的流向图拿出来
从图中可以看到RILJ通过RILD向MODEM发送命令后,接受response是通过readerLoop异步进行的(?好像并不是异步,虽然在不同线程,但是加锁了,执行情况和同步基本一样啊)。这就存在一个问题:RILJ怎么识别response对应哪一个request?并且这个response返回给谁?
从下图中可以看到,Andorid上层在RILJ新建一个RILRequst之前就已经率先新建了一个用于存放结果的result作为RILRequest的成员变量。这样当RILJ接收到response时就可以通过这个result传递到正确的命令发起者。而在RILJ层又为每个RILRquest指定了一个serial,当RILJ收到RILD的response时可以通过serial查表找到response匹配的RILRequest。在RILD层,则是依据serial生成token封装成parcel,下发至Modem。Modem处理后携带token返回parcel回RILD。RILD接收parcel后解析出token,以这个token作为参数封装成包含response信息Parcel包,token在RILJ中被还原成回serial。以此serial查询RILRequestList得到匹配的RILRequest。最终RILJ在通过rr.mResult.sendToTarget()将结果返回至命令发起者。
0 0
- Android6.0的phone应用源码分析(7)——RIL层框架分析2
- Android6.0的phone应用源码分析(7)——RIL层框架分析2
- Android6.0的phone应用源码分析(6)——RIL层框架分析
- Android6.0的phone应用源码分析(5)——RIL层分析
- Android6.0的phone应用源码分析(5)——RIL层分析
- Android6.0的phone应用源码分析(2)——phone相关进程启动分析
- Android6.0的phone应用源码分析(2)——phone相关进程启动分析
- Android6.0的phone应用源码分析(3)——phone 拨号UI分析
- Android6.0的phone应用源码分析(4)——phone拨号流程分析
- Android6.0的phone应用源码分析(3)——phone 拨号UI分析
- Android6.0的phone应用源码分析(4)——phone拨号流程分析
- 基于Android6.0的RIL框架层模块分析
- Android6.0的phone应用源码分析(1)——智能手机的硬件结构介绍
- Android6.0的phone应用源码分析(1)——智能手机的硬件结构介绍
- Android6.0的phone应用源码分析(8)——来电(MT)
- Android6.0的phone应用源码分析(8)——来电(MT)
- Android6.0的phone应用源码分析(9)——UICC卡管理
- Android6.0的phone应用源码分析(9)——UICC卡管理
- MySql导出一个数据库的表到另一个数据库的表中
- 打印特殊的大写字母三角形
- RecyclerView更新数据和定位到最底部
- Android6.0的phone应用源码分析(5)——RIL层分析
- poj 3641 Pseudoprime numbers
- Android6.0的phone应用源码分析(7)——RIL层框架分析2
- Picasso之内存优化
- 杭电1024Max Sum Plus Plus
- Codeforces Round #364 (Div. 2) E DFS
- Android6.0的phone应用源码分析(8)——来电(MT)
- 实习的第一天:配置环境
- css3技巧之背景渐变
- 超前引用问题---error C2079: '' uses undefined class
- AndroidStudio快捷键