下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
././android_pdk/telephony.html這個(gè)上的是文還有英文Android無線接口層〔RadioLayerInterface目錄:1、介紹
2、RIL初始化
3、RIL交互
3.1主動(dòng)請(qǐng)求
3.2被動(dòng)請(qǐng)求
4、實(shí)現(xiàn)RIL
RIL初始化
5、RIL函數(shù)
5.1RIL主動(dòng)命令請(qǐng)求
5.2RIL被動(dòng)請(qǐng)求的命令1介紹Android的無線接口層〔RIL提供了Android服務(wù)〔android.telephony與無線電硬件之間的抽象層。RIL是通訊無關(guān)的,提供基于GSM的網(wǎng)絡(luò)支持。
下圖顯示了RIL位于Android系統(tǒng)架構(gòu)中的位置。圖1實(shí)線框表示Android部分,虛線框表示合作伙伴所專用的部分。RIL包含兩個(gè)基本部件:
RIL守護(hù)進(jìn)程〔RILDaemon:RIL守護(hù)進(jìn)程初始化VendorRIL,管理所有來自Android通訊服務(wù)的通訊,將其作為被請(qǐng)求的命令〔solicitedcommands調(diào)度給VendorRIL。
VendorRIL:ril.h文件中的無線電專用VendorRIL掌管著所有和無線電硬件的通訊,并且通過未被請(qǐng)求的命令〔unsolicitedcommands分發(fā)給RIL守護(hù)進(jìn)程。2RIL初始化Android在啟動(dòng)時(shí)初始化通訊棧和VendorRIL,描述如下:
1.RIL守護(hù)進(jìn)程讀取rild.lib路徑和rild.libargs系統(tǒng)參數(shù),決定應(yīng)該使用的VendorRIL庫和向VendorRIL提供的初始化參數(shù)2.RIL守護(hù)進(jìn)程加載VendorRIL庫,執(zhí)行RIL_Init初始化RIL并為RIL函數(shù)獲取參數(shù)。
3.RIL守護(hù)進(jìn)程調(diào)用Android通訊棧中RIL_register,為VendorRIL函數(shù)提供參考。
RIL守護(hù)進(jìn)程源碼請(qǐng)參考//device/commands/rild/rild.c3RIL交互RIL句柄提供了兩種交互方式:主動(dòng)請(qǐng)求命令〔Solicitedcommands:主動(dòng)請(qǐng)求命令來自RILlib,比如DIAL和HANGUP。
被動(dòng)請(qǐng)求命令〔Unsolicitedresponses:被動(dòng)請(qǐng)求命令來自基帶,比如CALL_STATE_CHANGED和NEW_SMS。3.1主動(dòng)請(qǐng)求以下代碼片段屬于主動(dòng)請(qǐng)求命令
voidOnRequest<intrequest_id,void*data,size_tdatalen,RIL_Tokent>;
voidOnRequestComplete<RIL_Tokent,RIL_Errore,void*response,size_tresponselen>;
有超過60個(gè)主動(dòng)請(qǐng)求命令:
*SIMPIN,IO和IMSI/IMEI〔11
*狀態(tài)和動(dòng)作〔撥號(hào),應(yīng)答,靜音…〔16
*網(wǎng)絡(luò)狀態(tài)查詢〔4
*網(wǎng)絡(luò)設(shè)置〔禁止,轉(zhuǎn)發(fā),選擇…〔12
*短信〔3
*PDP連接〔4
*電源和復(fù)位〔2
*輔助服務(wù)〔5
*供應(yīng)商定義及其支持〔4下圖表明了Android系統(tǒng)一個(gè)主動(dòng)請(qǐng)求的過程,圖23.2被動(dòng)請(qǐng)求以下代碼片段屬于被動(dòng)請(qǐng)求命令:
voidOnUnsolicitedResponse<intunsolResponse,void*data,size_tdatalen>;有超過10條被動(dòng)請(qǐng)求命令:
*網(wǎng)絡(luò)狀態(tài)改變〔4
*新短信通知〔3
*新USSD通知〔2
*信號(hào)強(qiáng)度和時(shí)間改變〔2下圖表明Android系統(tǒng)中一個(gè)被動(dòng)請(qǐng)求的過程:圖34實(shí)現(xiàn)RIL為了實(shí)現(xiàn)一個(gè)通訊專用RIL,需要執(zhí)行一系列函數(shù)以創(chuàng)建一個(gè)共享庫,保證Android能夠響應(yīng)無線通信請(qǐng)求。所需要的函數(shù)被定義在RIL頭部〔/include/telephony/ril.h
Android通訊接口是通訊無關(guān)的,VendorRIL可以使用任意協(xié)議進(jìn)行無線通訊。Android提供了一個(gè)參考VendorRIL,使用的是賀式〔HayesAT命令設(shè)備,可作為一個(gè)商用的快速入門指導(dǎo)以及通訊測試使用。RIL參考源碼在/commands/reference-ril/。
通常將你自己的VendorRIL編譯為以下形式:
libril-<companyname>-<RILversion>.so
比如:libril-acme-124.so
其中:
libril:所有vendorRIL的開頭;
<companyname>:專用公司縮寫
<RILversion>:RIL版本number
so:文件擴(kuò)展4.1RIL初始化特定的VendorRIL必須定義一個(gè)初始化函數(shù),提供一系列句柄函數(shù)以處理每一個(gè)通訊請(qǐng)求。AndroidRIL守護(hù)進(jìn)程會(huì)在啟動(dòng)時(shí)調(diào)用RIL_Init以初始化RIL。
RIL_RadioFunctions*RIL_Init<RIL_Env*env,intargc,char**argv>;RIL_Init返回一個(gè)RIL_RadioFunctions結(jié)構(gòu)體包含無線電函數(shù)指針。
typestructure{
intRIL_version;
RIL_RequestFunconRequest;
RIL_RadioStateRequestonStateRequest;
RIL_Supportssupports;
RIL_CancelonCancel;
RIL_GetVersiongetVersion;
}RIL_RadioFunctions;5RIL函數(shù)ril.h定義了RIL狀態(tài)和變量,比如RIL_UNSOL_STK_CALL_SETUP,RIL_SIM_READY,RIL_SIM_NOT_READY,具體函數(shù)描述見下表。忽略頭文件</device/include/telephony/ril.h>細(xì)節(jié)。5.1RIL主動(dòng)命令請(qǐng)求VendorRIL必須提供下表中的函數(shù)用以發(fā)送主動(dòng)命令。RIL主動(dòng)命令請(qǐng)求類型定義在ril.h的RIL_REQUEST_prefix中。函數(shù)1:void<*RIL_RequestFunc><intrequest,void*data,size_tdatalen,RIL_Tokent>;描述:RIL主動(dòng)命令入口指針,必須能夠處理各種RIL主動(dòng)請(qǐng)求〔定義于ril.h的RIL_REQUEST_prefix。*request是一種RIL_REQUEST_*
*data是一個(gè)指向RIL_REQUEST_*數(shù)據(jù)的指針
*t應(yīng)當(dāng)被用于RIL_onResponse的后續(xù)調(diào)用
*datalen由調(diào)用者所有,應(yīng)當(dāng)由被調(diào)者修改或釋放必須調(diào)用RIL_onRequestComplete<>函數(shù)完成通訊。RIL_onRequestComplete<>在這個(gè)函數(shù)返回前或之后可能被任意線程調(diào)用。這個(gè)函數(shù)總會(huì)調(diào)用同一個(gè)線程,因此返回到這里意味著無線通訊準(zhǔn)備去處理其他命令〔無論前面命令是否完成傳輸。函數(shù)2:RIL_RadioState<*RIL_RadioStateRequest><>;描述:這個(gè)函數(shù)應(yīng)該返回當(dāng)前通訊同步狀態(tài)函數(shù)3:int<*RIL_Supports><intrequestCode>;描述:如果提供指定RIL_REQUEST代碼,返回1,否則返回0.函數(shù)4:void<*RIL_Cancel><RIL_Tokent>;描述:本函數(shù)用來指示取消一個(gè)待處理請(qǐng)求。函數(shù)將被一個(gè)獨(dú)立線程所調(diào)用,而不是RIL_RequestFunc函數(shù)。一旦取消,被調(diào)用者應(yīng)當(dāng)盡量放棄請(qǐng)求并在這之后調(diào)用RIL_onRequestComplete函數(shù)的RIL_ErrnoCANCELLED。響應(yīng)請(qǐng)求后調(diào)用RIL_onRequestComplete并產(chǎn)生其他結(jié)果是可以被接受的,但會(huì)被忽略<理應(yīng)忽略被取消的請(qǐng)求>。RIL_Cancel調(diào)用應(yīng)該被立刻返回,不需要等待取消。函數(shù)5:constchar*<*RIL_GetVersion><void>;描述:向你的VendorRIL返回版本字符串VendorRIL使用以下回調(diào)函數(shù)與AndroidRIL守護(hù)進(jìn)程通訊。函數(shù)1:voidRIL_onRequestComplete<RIL_Tokent,RIL_Errnoe,void*response,size_tresponselen>;描述:*t是之前通訊傳遞至RIL_Notification的參數(shù)
*如果e!=SUCCESS,則可以沒有相應(yīng),并且被忽略
*response由調(diào)用者所有,應(yīng)當(dāng)由被調(diào)用者修改或者釋放。
*RIL_onRequestComplete將盡快返回函數(shù)2:voidRIL_requestTimedCallback<RIL_TimedCallbackcallback,void*param,conststructtimeval*relativeTime>;描述:用戶指定的回調(diào)函數(shù)的線程中,RIL_RequestFunc函數(shù)被調(diào)用。如果指定了relativeTime,那么回調(diào)前將等待一個(gè)一個(gè)特定的時(shí)間值。如果relativeTime為空,或者指針指向了一個(gè)空的結(jié)構(gòu)體,回調(diào)函數(shù)會(huì)盡快被執(zhí)行。5.2RIL被動(dòng)命令下表函數(shù)是VedorRIL使用的回調(diào)函數(shù),用來喚醒被動(dòng)命令在Android平臺(tái)的相應(yīng)機(jī)制。具體細(xì)節(jié)看ril.h函數(shù):voidRIL_onUnsolicitedResponse<intunsolResponse,constvoid*data,size_tdatalen>;描述:*unsolResponse是RIL_UNSOL_RESPONSE_*其中之一
*data是指向RIL_UNSOL_RESPONSE_*數(shù)據(jù)的指針
*data被調(diào)用者所有,應(yīng)當(dāng)由被調(diào)用者修改或者釋放reference-ril.c文件存放路徑:wangkdebian:~/JWT/Android-JWT/hardware/ril/reference-ril$所在目錄結(jié)構(gòu):/hardware/ril/|--ril
〔無線電抽象層
|
|--include
〔頭文件
|
|--libril
〔庫
|
|--reference-cdma-sms〔cdma短信參考
|
|--reference-ril
〔ril參考
|
|--rild
〔ril后臺(tái)服務(wù)程序RadioInterfaceLayer<RIL>和UI框架結(jié)構(gòu)RIL介紹背景知識(shí)介紹,AT命令和pppRIL的工作原理和涉及的系統(tǒng)服務(wù)RIL的呼叫過程和ppp激活過程UI的surface框架[AndroidRIL開發(fā)]目標(biāo):熟悉androidril架構(gòu),能夠開發(fā)簡
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校安全工作與應(yīng)急管理計(jì)劃
- 電視設(shè)備租賃合同三篇
- 數(shù)控板料折彎機(jī)相關(guān)行業(yè)投資規(guī)劃報(bào)告
- 亞硝酸鹽中毒解毒藥行業(yè)相關(guān)投資計(jì)劃提議
- 型材:異型鋼相關(guān)項(xiàng)目投資計(jì)劃書
- 《液壓與氣動(dòng)》課件 1齒輪泵的結(jié)構(gòu)和工作原理
- 市場管理服務(wù)相關(guān)項(xiàng)目投資計(jì)劃書
- 鐵路行業(yè)安全巡查的標(biāo)準(zhǔn)化計(jì)劃
- 《解除迷茫規(guī)劃人生》課件
- 普通話教程課件普通話水平測試
- 供應(yīng)商質(zhì)量管理培訓(xùn)課程
- 阿膠的課件教學(xué)課件
- 登高作業(yè)安全
- 口腔營銷技能培訓(xùn)課件
- 2024年高考真題-政治(江蘇卷) 含答案
- 電子競技賽事裁判員培訓(xùn)教程
- 2024重慶機(jī)場集團(tuán)限公司公開招聘46人高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 2023年人教版八年級(jí)地理下冊(cè)全冊(cè)電子教案備課
- 內(nèi)蒙古自治區(qū)高等職業(yè)院校2024年對(duì)口招收中等職業(yè)學(xué)校畢業(yè)生單獨(dú)考試語文試題(無答案)
- 幼兒園班本課程培訓(xùn)
- 質(zhì)量管理題庫
評(píng)論
0/150
提交評(píng)論