隨筆-1  評論-68  文章-98  trackbacks-0

          整理:徐建祥(netpirate@gmail.com)
          日期:2009/09/21
          網(wǎng)址:http://www.anymobile.org

          初始化流程,主入口init.rc, rild.c中的main函數(shù),主要完成三個任務(wù):
          1. 開啟libril.so中的event機(jī)制, 在RIL_startEventLoop中,是最核心的由多路I/O驅(qū)動的消息循環(huán)。
          2. 初始化librefrence_ril.so,也就是跟硬件或模擬硬件modem通信的部分(后面統(tǒng)一稱硬件), 通過RIL_Init函數(shù)完成。
          3. 通過RIL_Init獲取一組函數(shù)指針RIL_RadioFunctions, 并通過RIL_register完成注冊,并打開接受上層命令的socket通道。

          RIL的線程和事件

          一共創(chuàng)建了3個線程,5個事件:
          s_wakeupfd_event(s_fdWakeupRead,pipe),
          s_listen_event(s_fdListen,socket RILD),
          s_commands_event(accept(s_fdListen...)),
          s_debug_event(s_fdDebug,socket RILD-debug),
          -1.

          第一個線程s_tid_dispath處理所有fd(socket,pipe,port)對應(yīng)的事件處理,處理和上層RIL.JAVA聯(lián)系是第一個線程和對應(yīng)的5個事件。
          第二個線程s_tid_mainloop和第三個線程s_tid_reader通過硬件層連接的fd,來處理readline,processline,處理下層硬件相關(guān)。

          posted on 2010-08-12 03:03 Xu Jianxiang 閱讀(619) 評論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 芒康县| 高邮市| 凉城县| 保定市| 阿坝| 葫芦岛市| 沐川县| 错那县| 托里县| 称多县| 青海省| 太白县| 水城县| 上犹县| 恩施市| 隆回县| 清水河县| 浮山县| 西畴县| 卢氏县| 桃园市| 岳阳市| 黑龙江省| 库车县| 弋阳县| 平塘县| 建德市| 昭平县| 尉犁县| 凤城市| 滨州市| 玉林市| 广平县| 宁德市| 和平县| 株洲市| 凤凰县| 新乡市| 汤阴县| 浦东新区| 南雄市|