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

Android的電話功能介紹

系統
Android的Radio Interface Layer (RIL)提供了電話服務和的radio硬件之間的抽象層。

Android的Radio Interface Layer (RIL)提供了電話服務和的radio硬件之間的抽象層。

Radio Interface Layer RIL(Radio Interface Layer)負責數據的可靠傳輸、AT命令的發送以及response的解析。應用處理器通過AT命令集與帶GPRS功能的無線通訊模塊通信

AT command由Hayes公司發明,是一個調制解調器制造商采用的一個調制解調器命令

JAVA Framework
     代碼的路徑為:
     frameworks/base/telephony/java/android/telephony
     android.telephony以及android.telephony.gsm

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

kernel Driver
     

Linux內核驅動中,提供了相關的驅動程序的支持,可以建立在UART或者SDIO,USB等高速的串行總線上。

hardware/ril/include/telephony/目錄中的ril.h文件是ril部分的基礎頭文件。
   

其中定義的結構體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中包含了幾個函數指針的結構體,這實際上是一個移植層的接口,下層的庫實現后,由rild守護進程得到這些函數指針,執行對應的函數。
   

幾個函數指針的原型為:
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);

   

其中最為重要的函數是onRequest(),它是一個請求執行的函數。

2.1 rild守護進程

 rild 守護進程的文件包含在hardware/ril/rild目錄中,其中包含了rild.c和radiooptions.c兩個文件,這個目錄中的文件經過編譯后生成一個可執行程序,這個程序在系統的安裝路徑在:
/system/bin/rild

rild.c是這個守護進程的入口,它具有一個主函數的入口main,執行的過程是將請求轉換成AT命令的字符串,給下層的硬件執行。在運行過程中,使用dlopen 打開路徑為/system/lib/中名稱為libreference-ril.so的動態庫,然后從中取出 RIL_Init符號來運行。

RIL_Init符號是一個函數指針,執行這個函數后,返回的是一個RIL_RadioFunctions類型的指針。得到這個指針后,調用RIL_register()函數,將這個指針注冊到libril庫之中,然后進入循環。

事實上,這個守護進程提供了一個申請處理的框架,而具體的功能都是在libril.so和libreference-ril.so中完成的。

2.2 libreference-ril.so動態庫

libreference-ril.so動態庫的路徑是:

hardware/ril/reference-ril

其中主要的文件是reference-ril.c和atchannel.c。這個庫必須實現的是一個名稱為RIL_Init的函數,這個函數執行的結果是返回一個RIL_RadioFunctions結構體的指針,指針指向函數指針。

這個庫在執行的過程中需要創建一個線程來執行實際的功能。在執行的過程中,這個庫將打開一個/dev/ttySXXX的終端(終端的名字是從上層傳入的),然后利用這個終端控制硬件執行。

2.3 libril.so動態庫

libril.so庫的目錄是:

hardware/ril/libril 

其中主要的文件為ril.cpp,這個庫主要需要實現的以下幾個接口為:
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);
   

這些函數也是被rild守護進程調用的,不同的vendor可以通過自己的方式實現這幾個接口,這樣可以保證RIL可以在不同系統的移植。其中 RIL_register()函數把外部的RIL_RadioFunctions結構體注冊到這個庫之中,在恰當的時候調用相應的函數。在執行的過程中,這個庫處理了一些將請求轉換成字符串的功能。

【編輯推薦】

  1. 下一代iPhone將有更快的網絡訪問速度
  2. DELL的智能手機計劃暫緩
  3. Android移植之J2ME篇

責任編輯:龐桂玉 來源: IT168
相關推薦

2010-03-05 14:08:16

Android編程功能

2010-03-05 16:58:02

Android Mar

2010-01-26 13:47:57

Android電話功能

2010-01-27 15:15:13

Android多媒體錄

2017-11-07 12:53:28

Android支持庫

2010-06-29 14:48:44

SNMP Trap

2010-07-26 15:47:02

Ophone系統

2022-05-10 11:02:02

電話子系統鴻蒙

2009-03-26 08:28:17

AndroidGoogle移動OS

2010-03-11 16:50:27

Python應用

2010-12-22 09:56:24

PHP

2009-11-30 14:27:42

2011-07-07 14:14:41

PHP模版

2009-09-07 15:40:06

2010-03-05 14:52:09

Android應用程序

2022-05-11 09:50:02

GitLinux

2009-07-16 16:08:30

WebWork Act

2014-03-24 10:44:49

Windows AzuWindows Azu

2009-12-01 15:14:32

PHP Substr庫

2010-03-04 13:36:55

openSUSE
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 麻豆av在线免费观看 | 青青草免费在线视频 | 毛片视频免费 | 在线视频日韩 | 免费午夜视频 | 午夜精品久久久久久久久久久久久 | 不卡一二三区 | 黄色一级大片在线免费看产 | a级免费黄色片 | 在线免费av电影 | 最新免费黄色网址 | 精品国产乱码久久久久久闺蜜 | 欧美国产精品 | 亚洲精品中文字幕中文字幕 | 毛片1 | wwwww在线观看 | 91av在线免费观看 | 在线观看国产www | 国产夜恋视频在线观看 | 999久久久久久久久 国产欧美在线观看 | 亚洲最色视频 | 99精品视频免费观看 | 欧美一级免费片 | 国产一区二区免费 | 一级黄色播放 | 午夜三级网站 | 日韩电影在线一区 | 91精品免费| 久久精品| 欧美日韩在线播放 | 色永久| 国产一级免费视频 | 国产精品久久久99 | 亚洲一区二区三区免费观看 | 欧美激情综合 | 国产一区2区 | 免费h视频| 欧美a区| 精品国产精品三级精品av网址 | 91精品国产乱码久久久久久久 | 亚洲视频免费观看 |