1、RIL 全称:
Radio Interface Layer,Android的无线接口层,负责提供电话服务.是上层应用和下层硬件modem之间的中间层。负责数据的可靠传输、AT命令的发送以及响应的解析。
2、RIL的三部分:
Android的RIL驱动模块在hardware/ril目录下,一共分rild,librild.so以及librefrence_ril.so三个部分。
(AT:调制解调器 命令语言,即Attention)
3、Rild:
Main函数作为整个ril层的入口点,用dlopen打开libreference-ril.so库,RIL_startEventLoop()创建客户端事件监听线程。RIL_register()注册事件处理接口,并创建socket监听事件。
4、Libril.so:
组成部分为:ril.cpp,ril_event.cpp。主要完成同Framework层通信的工作,接受ril请求并传递给libreference_ril.so,同时把来自modem的response通过libreference_ril.so的反馈回传给调用进程。
5、RIL_startEventLoop:
在ril.cpp中实现的,它的主要目的是通过
Pthread_create(&s_tid_dispatch,&attr,eventLoop,NULL)建立一个dispatch线程,入口点在eventLoop线程。在eventLoop中,会调用ril_event.cpp中的ril_even