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

探秘Android GSM的特性說明

移動開發 Android
每一個Android GSM都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik是針對于同時高效地運行多個VMs來實現的。

但是,我們認為全球移動用戶從中能獲得的潛在利益是值得付出這些努力的。如果你也是一個開發者,并對我們的想法感興趣,就請再給我們一星期的時間,屆時谷歌便能提供 Android GSM了。

這個任務的入口是RIL_Init, RIL_Init首先通過參數獲取硬件接口的設備文件或模擬硬件接口的socket. 接下來便新開一個線程繼續初始化, 即mainLoop。mainLoop的主要任務是建立起與硬件的通信,然后通過read方法阻塞等待硬件的主動上報或響應。在注冊一些基礎回調(timeout,readerclose)后。

mainLoop首先打開硬件設備文件,建立起與硬件的通信,s_device_path和s_port是前面獲取的設備路徑參數,將其打開(兩者可以同時打開并擁有各自的reader,這里也很容易添加雙卡雙待等支持)。

接下來通過at_open函數建立起這一設備文件上的reader等待循環,這也是通過新建一個線程完成, ret = pthread_create(&s_tid_reader, &attr, readerLoop, &attr),入口點readerLoop。

AT命令都是以\r\n或\n\r的換行符來作為分隔符的,所以readerLoop是line驅動的,除非出錯,超時等,否則會讀到一行完整的響應或主動上報,才會返回。這個循環跑起來以后,我們基本的AT響應機制已經建立了起來。它的具體分析,包括at_open中掛接的ATUnsolHandler, 我們都放到后面分析response的連載文章里去。

有了響應的機制(當然,能與硬件通信也已經可以發請求了),通過RIL_requestTimedCallback(initializeCallback, NULL, &TIMEVAL_0),跑到initializeCallback中,執行一些Modem的初始化命令,主要都是AT命令的方式。

AT命令的流程,我們放到后面分析request的連載文章里。這里可以看到,主要是一些參數配置,以及網絡狀態的檢查等。其中最重要的是onRequest域,上層來的請求都由這個函數進行映射后轉換成對應的AT命令發給硬件。

rild通過RIL_register注冊這一指針。RIL_register中要完成的另外一個任務,就是打開前面提到的跟上層通信的socket接口(s_fdListen是主接口,s_fdDebug供調試時使用)。然后將這兩個socket接口使用任務一中實現的機制進行注冊(僅列出s_fdListen)ril_event_set (&s_listen_event, s_fdListen, false,

這樣將兩個Android GSM加到任務一中建立起來多路復用I/O的檢查句柄集合中,一旦有上層來的(調試)請求,event機制便能響應處理了。rr是以RIL_REQUEST_DIAL為request號而申請的一個RILRequest對象.這個request號在java框架和rild庫中共享(參考RILConstants.java中這些值的由來:)

RILRequest初始化的時候,會連接名為rild的socket(也就是rild中s_listen_event綁定的socket),初始化數據傳輸的通道。rr.mp是Parcel對象,Parcel是一套簡單的序列化協議,用于將對象(或對象的成員)序列化成字節流,以供傳遞參數之用。

這里可以看到Android GSM和int clirMode都是將依次序列化的成員.在這之前,rr初始化的時候,request號跟request的序列號(自動生成的遞增數),已經成為頭兩個將被序列化的成員.這為后面的request解析打下了基礎。

【編輯推薦】

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

2009-11-23 19:50:12

PHP6.0

2010-02-05 18:09:12

Android

2011-07-29 09:31:32

JDK 7

2010-03-05 10:38:16

Android移動操作

2010-06-22 11:07:42

JDK 7Java開發Java

2011-05-20 09:35:22

JDK7

2010-01-14 11:07:59

Visual C++

2011-05-20 09:43:23

JDK7

2010-03-05 14:43:22

Android瀏覽器

2010-02-07 14:54:13

Android

2010-01-08 10:41:56

JSON 數據

2010-01-12 15:33:26

CC++

2010-02-05 16:28:07

Android

2011-05-20 09:53:00

JDK7

2011-05-20 10:15:06

JDK7

2011-05-20 10:28:29

JDK7

2010-08-18 10:13:55

IntentAndroid

2009-12-23 10:18:21

ADO.NET 應用程

2009-12-11 13:49:39

VS Web服務

2010-01-25 18:19:17

C++特性
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品二区 | 91免费看片 | 久久一区二区精品 | 欧洲一级毛片 | 日韩网站免费观看 | 国产精品国产三级国产aⅴ原创 | 国产精品区二区三区日本 | 久久久夜色精品亚洲 | 成人免费视频一区二区 | 久久影音先锋 | 日韩午夜 | av中文字幕网站 | 精品国产精品国产偷麻豆 | 久久av资源网 | 99精品久久久 | 精品国产99 | 成人免费观看视频 | 国产美女黄色片 | 久久国产精品视频 | 祝你幸福电影在线观看 | 欧美午夜视频 | 亚洲 中文 欧美 日韩 在线观看 | 超碰97人人人人人蜜桃 | 懂色av色香蕉一区二区蜜桃 | 日韩av成人在线 | 91精品观看 | 欧美一级二级在线观看 | 日韩精品视频网 | 日一区二区三区 | 国产专区在线 | 成人av一区 | 日韩在线精品视频 | 国产精品国产亚洲精品看不卡15 | 一级黄色毛片免费 | 国产成人在线一区二区 | 农夫在线精品视频免费观看 | 欧美性受xxx | 成人精品毛片国产亚洲av十九禁 | 在线免费看毛片 | 欧美日韩国产传媒 | 黄色一级大片在线免费看产 |