成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細說明Android手機的種種特性

移動開發 Android
Android的RIL驅動模塊, 在hardware/ril目錄下,一共分rild,libril.so以及librefrence_ril.so三個部分。

Android作為一個高效的.NET程序語言。其混合了函數語言和物件導向程序編制語言,并且完美的適用于編程、算法、技術和探索性開發,因此可以在使用的過程當中感受到趣味性和吸引力。

都依賴于include目錄中ril.h頭文件。目前cupcake分支上帶的是gsm的支持,另有一cdma分支,這里分析的是gsm驅動。GSM模塊,由于Modem的歷史原因,AP一直是通過基于串口的AT命令與BB交互。包括到了目前的一些edge或3g模塊,或像omap這類ap,bp集成的芯片,已經使用了USB或其他等高速總線通信。

但大多仍然使用模擬串口機制來使用AT命令。這里的RIL(Radio Interface Layer)層,主要也就是基于AT命令的操作,如發命令,response解析等。(gprs等傳輸會用到的MUX協議等在這里并沒有包含,也暫不作介紹。)

以下是詳細分析,因為篇幅原因,會以連載形式發布出來(大概3篇),本文主要涉及基本架構和初始化的內容,首先介紹一下rild與libril.so以及librefrence_ril.so的關系:

1. rild:
僅實現一main函數作為整個ril層的入口點,負責完成初始化。

2. libril.so:
與rild結合相當緊密,是其共享庫,編譯時就已經建立了這一關系。組成部分為ril.cpp,ril_event.cpp。libril.so駐留在rild這一守護進程中,主要完成同上層通信的工作,接受ril請求并傳遞給。

3. librefrence_ril.so:
rild通過手動的dlopen方式加載,結合稍微松散,這也是因為librefrence.so主要負責跟Modem硬件通信的緣故。這樣做更方便替換或修改以適配更多的Modem種類。

它轉換來自libril.so的請求為AT命令,同時監控Modem的反饋信息,并傳遞回libril.so。在初始化時, rild通過符號RIL_Init獲取一組函數指針并以此與之建立聯系。

4. radiooptions:
radiooptiongs通過獲取啟動參數, 利用socket與rild通信,可供調試時配置Modem參數。

接下來分析初始化流程,主入口是rild.c中的main函數,主要完成三個任務:
1. 開啟Android中的event機制, 在RIL_startEventLoop中,是最核心的由多路I/O驅動的消息循環。

2. 初始化librefrence_ril.so,也就是跟硬件或模擬硬件modem通信的部分(后面統一稱硬件), 通過RIL_Init函數完成。

3. 通過RIL_Init獲取一組函數指針RIL_RadioFunctions, 并通過RIL_register完成注冊,并打開接受上層命令的socket通道。

每個ril_event結構,與一個fd句柄綁定(可以是文件,socket,管道等),并且帶一個func指針去執行指定的操作。具體流程是: ril_event_init完成后,通過ril_event_set來配置一新ril_event,并通過ril_event_add加入隊列之中(實際通常用rilEventAddWakeup來添加)。

add會把隊列里所有ril_event的fd,放入一個fd集合readFds中。這樣ril_event_loop能通過一個多路復用I/O的機制(select)來等待這些fd, 如果任何一個fd有數據寫入,則進入分析流程processTimeouts(),processReadReadies(&rfds, n),firePending()。

 后文會詳細分析這些流程,另外我們可以看到, 在進入ril_event_loop之前, 已經掛入了一s_wakeupfd_event, 通過pipe的機制實現的, 這個event的目的是可以在一些情況下,能內部喚醒ril_event_loop的多路復用阻塞。

比如一些帶timeout的命令timeout到期的時候。至此第一個任務分析完畢,這樣便建立起了基于event隊列的消息循環,稍后便可以接受上層發來的的請求了(上層請求的event對象建立,在第三個任務中)。

【編輯推薦】

  1. Android應用程序組建原理深入剖析
  2. Android SMS短信服務相關概念簡述
  3. PythonAndroid數據庫相關代碼解讀
  4. PythonAndroid安裝卸載程序具體操作方法解析
  5. Android應用程序的四個關鍵點
責任編輯:chenqingxiang 來源: 博客園
相關推薦

2009-12-28 09:19:21

ADO屬性

2010-01-08 15:37:59

JSON數據

2010-03-03 18:17:01

Android手機服務

2010-03-05 14:43:22

Android瀏覽器

2010-02-04 14:41:52

Android菜單類型

2010-03-03 16:37:49

Android智能手機

2010-02-04 15:20:50

Android SDK

2010-03-05 14:16:38

Android設計平臺

2010-02-04 09:55:46

Android DEX

2010-02-06 15:53:55

2010-02-06 17:43:51

Android應用

2014-09-16 09:57:56

INotifyProp

2009-12-28 09:26:09

ADO對象

2010-02-05 17:34:37

Android 2.1

2010-02-06 16:57:43

Android操作系統

2010-03-05 13:54:09

2010-03-05 15:58:11

操作系統Android

2010-02-05 17:04:31

Android版本

2010-03-03 17:11:08

2010-10-13 14:28:09

mysql日志文件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人伊成久久人综合网站 | 九九av | 日韩国产精品一区二区三区 | 激情麻豆视频 | 成人免费大片黄在线播放 | 玖玖玖在线 | 成人国产精品久久久 | 国产欧美日韩精品一区二区三区 | 国产欧美一区二区三区日本久久久 | 一区二区三区四区在线视频 | 看羞羞视频 | 国产精品视频在线观看 | 国产我和子的乱视频网站 | 国产精品视频入口 | 特黄视频 | 欧美一级在线观看 | 亚洲成人在线视频播放 | 精品欧美在线观看 | 成年人免费网站 | 国产一区二区三区四区在线观看 | 日日操日日干 | 国产一区免费视频 | 日干夜操 | 日本一区二区影视 | av日韩高清 | 久久精品亚洲一区 | 久久1区| 久草新在线| 午夜精品一区二区三区在线视 | 亚洲最大看片网站 | 日韩av一区二区在线观看 | 国产精品免费播放 | 99re热精品视频 | 天天干,夜夜操 | 亚洲一区中文字幕在线观看 | 成人特区| 国产视频久久久 | 欧美xxxx色视频在线观看免费 | 毛片入口| 在线播放中文字幕 | 一区2区|