国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Android的電話功能介紹

Android的電話功能介紹

責(zé)任編輯:柳達(dá)作者:it168 韓超   2009-03-24   
【內(nèi)容導(dǎo)航】
文本Tag: Android
     【IT168 技術(shù)文檔】Android的Radio Interface Layer (RIL)提供了電話服務(wù)和的radio硬件之間的抽象層。
     Radio Interface Layer RIL(Radio Interface Layer)負(fù)責(zé)數(shù)據(jù)的可靠傳輸、AT命令的發(fā)送以及response的解析。應(yīng)用處理器通過AT命令集與帶GPRS功能的無線通訊模塊通信。
     AT command由Hayes公司發(fā)明,是一個(gè)調(diào)制解調(diào)器制造商采用的一個(gè)調(diào)制解調(diào)器命令
JAVA Framework
     代碼的路徑為:
     frameworks/base/telephony/java/android/telephony
     android.telephony以及android.telephony.gsm

Core native:
     在hardware/ril目錄中,提供了對RIL支持的本地代碼,包括4個(gè)文件夾:
     hardware/ril/include  
     hardware/ril/libril  
     hardware/ril/reference-ril  
     hardware/ril/rild


kernel Driver
     在Linux內(nèi)核驅(qū)動(dòng)中,提供了相關(guān)的驅(qū)動(dòng)程序的支持,可以建立在UART或者SDIO,USB等高速的串行總線上。
 
hardware/ril/include/telephony/目錄中的ril.h文件是ril部分的基礎(chǔ)頭文件。
    其中定義的結(jié)構(gòu)體RIL_RadioFunctions如下所示:
  typedef struct {
    int version;
    RIL_RequestFunc onRequest;
    RIL_RadioStateRequest onStateRequest;
    RIL_Supports supports;
    RIL_Cancel onCancel;
    RIL_GetVersion getVersion;
} RIL_RadioFunctions;

    RIL_RadioFunctions中包含了幾個(gè)函數(shù)指針的結(jié)構(gòu)體,這實(shí)際上是一個(gè)移植層的接口,下層的庫實(shí)現(xiàn)后,由rild守護(hù)進(jìn)程得到這些函數(shù)指針,執(zhí)行對應(yīng)的函數(shù)。
    幾個(gè)函數(shù)指針的原型為:
typedef void (*RIL_RequestFunc) (int request, void *data,
                                    size_t datalen, RIL_Token t);
typedef RIL_RadioState (*RIL_RadioStateRequest)();
typedef int (*RIL_Supports)(int requestCode);
typedef void (*RIL_Cancel)(RIL_Token t);
typedef const char * (*RIL_GetVersion) (void);

    其中最為重要的函數(shù)是onRequest(),它是一個(gè)請求執(zhí)行的函數(shù)。
 
2.1 rild守護(hù)進(jìn)程
   
rild 守護(hù)進(jìn)程的文件包含在hardware/ril/rild目錄中,其中包含了rild.c和radiooptions.c兩個(gè)文件,這個(gè)目錄中的文件經(jīng)過編譯后生成一個(gè)可執(zhí)行程序,這個(gè)程序在系統(tǒng)的安裝路徑在:
/system/bin/rild
     rild.c是這個(gè)守護(hù)進(jìn)程的入口,它具有一個(gè)主函數(shù)的入口main,執(zhí)行的過程是將請求轉(zhuǎn)換成AT命令的字符串,給下層的硬件執(zhí)行。在運(yùn)行過程中,使用dlopen 打開路徑為/system/lib/中名稱為libreference-ril.so的動(dòng)態(tài)庫,然后從中取出 RIL_Init符號來運(yùn)行。
     RIL_Init符號是一個(gè)函數(shù)指針,執(zhí)行這個(gè)函數(shù)后,返回的是一個(gè)RIL_RadioFunctions類型的指針。得到這個(gè)指針后,調(diào)用RIL_register()函數(shù),將這個(gè)指針注冊到libril庫之中,然后進(jìn)入循環(huán)。
     事實(shí)上,這個(gè)守護(hù)進(jìn)程提供了一個(gè)申請?zhí)幚淼目蚣?,而具體的功能都是在libril.so和libreference-ril.so中完成的。

2.2 libreference-ril.so動(dòng)態(tài)庫

     libreference-ril.so動(dòng)態(tài)庫的路徑是:
     hardware/ril/reference-ril 
     其中主要的文件是reference-ril.c和atchannel.c。這個(gè)庫必須實(shí)現(xiàn)的是一個(gè)名稱為RIL_Init的函數(shù),這個(gè)函數(shù)執(zhí)行的結(jié)果是返回一個(gè)RIL_RadioFunctions結(jié)構(gòu)體的指針,指針指向函數(shù)指針。
     這個(gè)庫在執(zhí)行的過程中需要?jiǎng)?chuàng)建一個(gè)線程來執(zhí)行實(shí)際的功能。在執(zhí)行的過程中,這個(gè)庫將打開一個(gè)/dev/ttySXXX的終端(終端的名字是從上層傳入的),然后利用這個(gè)終端控制硬件執(zhí)行。

2.3 libril.so動(dòng)態(tài)庫
     libril.so庫的目錄是:
     hardware/ril/libril  
     其中主要的文件為ril.cpp,這個(gè)庫主要需要實(shí)現(xiàn)的以下幾個(gè)接口為:
RIL_startEventLoop(void);
void RIL_setcallbacks (const RIL_RadioFunctions *callbacks);
RIL_register (const RIL_RadioFunctions *callbacks);
RIL_onRequestComplete(RIL_Token t, RIL_Errno e, void *response, size_t responselen);
void RIL_onUnsolicitedResponse(int unsolResponse, void *data,
                                size_t datalen);
RIL_requestTimedCallback (RIL_TimedCallback callback, void *param,
                                const struct timeval *relativeTime);

    這些函數(shù)也是被rild守護(hù)進(jìn)程調(diào)用的,不同的vendor可以通過自己的方式實(shí)現(xiàn)這幾個(gè)接口,這樣可以保證RIL可以在不同系統(tǒng)的移植。其中 RIL_register()函數(shù)把外部的RIL_RadioFunctions結(jié)構(gòu)體注冊到這個(gè)庫之中,在恰當(dāng)?shù)臅r(shí)候調(diào)用相應(yīng)的函數(shù)。在執(zhí)行的過程中,這個(gè)庫處理了一些將請求轉(zhuǎn)換成字符串的功能。
 
 
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Android 無線接口層RIL(Radio Layer Interface)
Android GSM驅(qū)動(dòng)模塊詳細(xì)分析
Android RIL結(jié)構(gòu)分析與移植
Android RIL 架構(gòu)學(xué)習(xí)總結(jié)
android phone 模塊分析
Radio Layer Interface(來自:http://www.netmite.com/android/mydroid/development/pdk/docs/telephony.html)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服