Android电话系统rild-启动流程

由《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]函数调用时序图

Android电话系统rild-启动流程_第1张图片

[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的流程)。

你可能感兴趣的:(Android电话系统rild-启动流程)