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

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

          初始化流程,主入口init.rc, rild.c中的main函數(shù),主要完成三個任務:
          1. 開啟libril.so中的event機制, 在RIL_startEventLoop中,是最核心的由多路I/O驅動的消息循環(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)對應的事件處理,處理和上層RIL.JAVA聯(lián)系是第一個線程和對應的5個事件。
          第二個線程s_tid_mainloop和第三個線程s_tid_reader通過硬件層連接的fd,來處理readline,processline,處理下層硬件相關。

          posted on 2010-12-14 22:44 Xu Jianxiang 閱讀(449) 評論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 洪洞县| 诸城市| 江孜县| 庆安县| 昌乐县| 且末县| 天柱县| 城口县| 油尖旺区| 荆门市| 崇信县| 莆田市| 巍山| 宣恩县| 新乡市| 平塘县| 安国市| 五峰| 响水县| 沙河市| 法库县| 于都县| 龙游县| 蒙阴县| 西乌珠穆沁旗| 庆云县| 高淳县| 石景山区| 错那县| 无棣县| 弥勒县| 蚌埠市| 都江堰市| 济宁市| 包头市| 林州市| 宜章县| 平利县| 屏东县| 汾阳市| 石景山区|