資源描述:
《android的電話功能介紹——整個(gè)ril文件夾的分析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、Android的電話功能介紹——整個(gè)RIL文件夾的分析介紹本文檔對(duì)AndroidRIL部分的內(nèi)容進(jìn)行了介紹,其重點(diǎn)放在了AndroidRIL的原生代碼部分。包括四個(gè)主題:1.AndroidRIL框架介紹2.AndroidRIL與WindowsMobileRIL3.AndroidRILporting4.AndroidRIL的java框架在本文檔中將Android代碼中的重要模塊列出進(jìn)行分析,并給出了相關(guān)的程序執(zhí)行流程介紹,以加深對(duì)模塊間交互方式的理解。對(duì)于java代碼部分,這里僅進(jìn)行簡(jiǎn)單的介紹。如果需要深入了解,可以查看相關(guān)參考資料。本文檔中還對(duì)AndroidRIL的Porting部分
2、內(nèi)容進(jìn)行了描述和分析。針對(duì)對(duì)Linux操作系統(tǒng)環(huán)境并不熟悉的讀者,本文檔中所涉及到的相關(guān)知識(shí)包括:?Linuxfilesystem?Linuxsocket?Linuxthread?Linux?下I/O多路轉(zhuǎn)接以上信息可以在任意一份描述Linux系統(tǒng)調(diào)用的文檔中找到。1.AndroidRIL框架介紹術(shù)語(yǔ):fd???????????????????????Linux文件描述符pipe??????????????????????Linux管道cond??????????????????????一般是conditionvariable的縮寫(xiě)tty???????????????????????
3、通常使用tty來(lái)簡(jiǎn)稱各種類型的終端設(shè)備unsolicitedresponse?????????被動(dòng)請(qǐng)求命令來(lái)自basebandeventloop????????????????android的消息隊(duì)列機(jī)制,由Linux的系統(tǒng)調(diào)用select()實(shí)現(xiàn)init.rc?????????????????????init守護(hù)進(jìn)程啟動(dòng)后被執(zhí)行的啟動(dòng)腳本。HAL????????????????????硬件抽象層(HardwareAbstractionLayer,HAL)1.1AndroidRIL概況:AndroidRIL提供了無(wú)線硬件設(shè)備與電話服務(wù)之間的抽象層。下圖展示了RIL在Android體系
4、中的位置。77/77android的ril位于應(yīng)用程序框架與內(nèi)核之間,分成了兩個(gè)部分,一個(gè)部分是rild,它負(fù)責(zé)socket與應(yīng)用程序框架進(jìn)行通信。另外一個(gè)部分是VendorRIL,這個(gè)部分負(fù)責(zé)向下是通過(guò)兩種方式與radio進(jìn)行通信,它們是直接與radio通信的AT指令通道和用于傳輸包數(shù)據(jù)的通道,數(shù)據(jù)通道用于手機(jī)的上網(wǎng)功能。?對(duì)于RIL的java框架部分,也被分成了兩個(gè)部分,一個(gè)是RIL模塊,這個(gè)模塊主要用于與下層的rild進(jìn)行通信,另外一個(gè)是Phone模塊,這個(gè)模塊直接暴露電話功能接口給應(yīng)用開(kāi)發(fā)用戶,供他們調(diào)用以進(jìn)行電話功能的實(shí)現(xiàn)。1.2AndroidRIL目錄結(jié)構(gòu):Android
5、的RIL模塊位于Android/hardware/ril文件夾,有三個(gè)子模塊:rild,libril,reference-ril所在目錄結(jié)構(gòu):/hardware/ril/?
6、--ril????(無(wú)線電抽象層)
7、??
8、--include???(頭文件)
9、??
10、--libril???(庫(kù))
11、??
12、--reference-cdma-sms(cdma短信參考)
13、??
14、--reference-ril???(ril參考)
15、??
16、--rild????(ril后臺(tái)服務(wù)程序)hardware/ril$ls77/77include?libril?reference-cdma-sms?reference-
17、ril???rild?1.hardware/ril/rild$lsAndroid.mk?MODULE_LICENSE_APACHE2?NOTICE?radiooptions.c??rild.c2.hardware/ril/include/telephony$lsril_cdma_sms.h??ril.h3.hardware/ril/libril$lsAndroid.mk?????????????NOTICE?????ril_event.h???????ril.cpp??????ril_event.cpp??ril_commands.h??ril_unsol_commands.hMOD
18、ULE_LICENSE_APACHE2??4.hardware/ril/reference-cdma-sms$lsAndroid.mk?reference-cdma-sms.c?reference-cdma-sms.h5.hardware/ril/reference-ril$lsAndroid.mk??atchannel.h?at_tok.h?misc.h????NOTICE????atchannel.c?at_tok.c???ril_event.h???