Android电话系统rild-启动流程

来源:互联网 发布:三级数据库历年真题 编辑:程序博客网 时间:2024/05/17 09:43

由《android电话系统rild之概述篇》可知,rild是init进程启动的一个守护进程,加载了libril.so和Reference-ril.so,从而实现了电话服务与硬件设备之间的通信。本文将介绍rild守护进程启动的流程。

Contents

 [hide]
  • 1 启动
  • 2 流程分析
  • 3 函数调用时序图
  • 4 summary

启动

init.rc中,启动rild守护进程。

    service ril-daemon /system/bin/rild      class main      socket rild stream 660 root radio      socket rild-debug stream 660 radio system      user root      group radio cache inet misc audio sdcard_rw qcom_oncrpc diag

流程分析

code path:Z:\Triangle\hardware\ril\rild\rild.c

下图所示为rild守护进程启动流程图。


                

[edit]函数调用时序图


[edit]summary

从以上图中可以得知,rild守护进程的主要作用是:

   开启eventloop,循环监听ril-java发来的命令;   加载reference-ril.so,打开rild与modem通信的硬件设备接口并对其初始化,创建readloop读取modem发来的响应;   建立并开启socket,接收ril-java发来的数据;   进入while循环;

下一章将介绍rild处理数据流的流程(ril-java发送给rild,rild转换成AT命令再发给modem以及rild读取modem发来的消息,再上传给ril-java的流程)。

原创粉丝点击