android modem架构,Telephony解析之整体架构简介
本文代碼基于Android 9.0
Telephony概述
Android系統(tǒng)是主流的手機(jī)操作系統(tǒng),手機(jī)在人們生活中的的存在最不可忽視的功能就是通信,Android系統(tǒng)中的的Telephony為此功能的核心模塊,Telephony主要提供了語(yǔ)音,短信,數(shù)據(jù)鏈接,SIM卡管理,電話簿等功能
Telephony架構(gòu)由上到下可分為4層:
應(yīng)用層(Application)
面向用戶的應(yīng)用層,依賴于應(yīng)用框架層,通過訪問Telephony應(yīng)用框架層的業(yè)務(wù)模塊來(lái)呈現(xiàn)給用戶具體的功能,主要包括Phone、Contacts、SMS等應(yīng)用,Phone比較特殊,系統(tǒng)啟動(dòng)時(shí)就被運(yùn)行起來(lái)了,且Phone啟動(dòng)時(shí)會(huì)創(chuàng)建Telephony框架層,并與之運(yùn)行在同一個(gè)進(jìn)程中
應(yīng)用框架層(Framework)
Telephony應(yīng)用框架層主要包括RILJ、Service、業(yè)務(wù)功能模塊三個(gè)部分構(gòu)成,提供了電話,短信,聯(lián)系人等所需的所有功能
代碼路徑是:/frameworks/base/telephony
android.telephony:外部應(yīng)用可訪問的Phone模塊
com.android.internal.telephony:Phone應(yīng)用和框架內(nèi)部使用的Phone模塊
1.RILJ
/frameworks/opt/telephony/src/java/com/android/internal/telephony/RIL.java
RIL.java是Telephony和本地RIL的通信接口,通過Socket(rild)完成電話服務(wù)命令的收發(fā)
2.Service
Telephony基于IBinder提供了各種功能的Service,以便于業(yè)務(wù)功能模塊的實(shí)現(xiàn)
3.業(yè)務(wù)功能模塊
Telephony業(yè)務(wù)功能模塊主要包括語(yǔ)音、短信、ICC 卡、網(wǎng)絡(luò)服務(wù)以及數(shù)據(jù)連接等,這些功能模塊是Android系統(tǒng)通話功能的核心和基礎(chǔ)注:整個(gè)Framework層的Telephony框架運(yùn)行在一個(gè)叫做Phone(com.android.phone)的進(jìn)程中。而這個(gè)進(jìn)程是在packages\services\Telephony模塊中被創(chuàng)建的
本地RIL層(RIL)
RIL(Radio Interface Layer)是Telephony框架層與Modem之間的接口層(屬于HAL層),RIL將Modem提供的各種服務(wù)進(jìn)行了抽象,以提供給Framework層統(tǒng)一的接口
RIL架構(gòu)
1.RIL抽象層
實(shí)現(xiàn)RIL層框架,包括RILD守護(hù)進(jìn)程和RIL庫(kù),定義了其與Framework層、Vendor RIL之間的接口
2.RIL實(shí)現(xiàn)層
基于不同Modem廠商的RIL功能實(shí)現(xiàn)(Vendor RIL),其主要功能是接受 RIL 層的主動(dòng) Request,轉(zhuǎn)發(fā)給 Modem,同時(shí)接受 Modem 返回的請(qǐng)求 Response 和主動(dòng)上報(bào)事件,上報(bào)給 RIL 層
RILD
RILD是一個(gè)可執(zhí)行程序,作為守護(hù)進(jìn)程運(yùn)行在系統(tǒng)中,進(jìn)程內(nèi)配合RIL
Lib和Vendor RIL實(shí)現(xiàn)了RIL的所有功能,它通過Socket與應(yīng)用框架層進(jìn)行通信,守護(hù)進(jìn)程內(nèi)部會(huì)初始化Vendor
RIL,同時(shí)管理所有的電話相關(guān)的請(qǐng)求、主動(dòng)上報(bào)、請(qǐng)求 Response 等事件,其主要功能如下:
1.Event 處理框架(通過 Select 機(jī)制實(shí)現(xiàn))
2.請(qǐng)求、數(shù)據(jù)下發(fā) (將 RILJ 通過 Socket 傳過來(lái)的數(shù)據(jù)解成 C 語(yǔ)言數(shù)據(jù)結(jié)構(gòu),然后和請(qǐng)求下發(fā)給 Vendor RIL 處理)
3.Response、數(shù)據(jù)上報(bào)(將 Vendor RIL 上報(bào)的請(qǐng)求 Response 和主動(dòng)上報(bào)事件打包通過 Socket 轉(zhuǎn)發(fā)給 RILJ 層)注:RIL和Modem之間交互,大部分廠商采用AT命令交互,也有其他的交互方式,例如高通使用了ONCRPC、QMI 接口
驅(qū)動(dòng)層(Modem)
RIL 驅(qū)動(dòng)用于實(shí)現(xiàn)電話功能,主要硬件是通信模塊(Modem),Modem 通過與通信網(wǎng)絡(luò)進(jìn)行溝通,傳輸語(yǔ)音及數(shù)據(jù),完成呼叫、短信等相關(guān)電話功能。
目前的智能機(jī)在硬件上多采用雙 cpu 的架構(gòu),一個(gè)是基帶處理器,主要處理數(shù)字信號(hào)、語(yǔ)音信號(hào)的編碼解碼以及通信3協(xié)議,基帶處理器、射頻和其它外圍芯片作為一個(gè) Modem 模塊,提供 AT 命令接口。
另一個(gè)是應(yīng)用處理器,運(yùn)行操作系統(tǒng)和各種應(yīng)用程序。對(duì)于目前大部分的獨(dú)立通信模塊而言,無(wú)論是 2G 還是 3G 都已經(jīng)非常成熟,模塊化相當(dāng)完善,硬件接口非常簡(jiǎn)單,也有著相對(duì)統(tǒng)一的軟件接口。
一般 Modem 模塊裝上 SIM 卡,直接上電即可工作,自動(dòng)完成初始的找網(wǎng)、網(wǎng)絡(luò)注冊(cè)等工作,完成之后即可打電話、發(fā)短信等
總結(jié)
通過這篇文章介紹,可以了解整個(gè)Telephony的分層架構(gòu),以此為基礎(chǔ)可劃分Telephony相關(guān)的各個(gè)主線,進(jìn)行各個(gè)擊破
總結(jié)
以上是生活随笔為你收集整理的android modem架构,Telephony解析之整体架构简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 大象不会跳舞了吗?营收下滑的IBM在干什
- 下一篇: unity动态美术字体制作
