# Android電話系統之概述篇
首先拋開Android的一切概念來研究一下電話系統的最基本的描述。我們的手機首先用來打電話的,隨后是需要一個電話本,隨后是PIM,隨后是網絡應用,隨后是云計算,隨后是想我們的手機無所不能,替代PC。但是作為一個電話的基本功能如下:
0)撥叫電話,接聽電話,掛斷電話,發送短信,網絡連接,PIM管理
1)由于電話運營商為我們提供了呼叫等待,電話會議等補充業務,所以我們的手機需要管理多路通話,如何管理?
2)來電時,我們要播出來電鈴聲,接通時我們需要切換語音通道,這個又跟多媒體系統打上了交道,例如有耳機插上了,有藍牙耳機連上了,系統該做如何的管理和切換?
3)上網的網絡通路建立(例如GSM GPRS),如何PPP連接并連接到LinuxSocket通道上的?系統如何管理數據連接?
4)AP跟Modem通訊時通過AT指令的,如何將AT指令變成一個個具體的操作函數,如何管理Modem發給我們的回應,AT命令通道,數據通道如何管理?
5)sim卡的電話本如何管理?
上面的關于手機的基本問題,Android電話系統設計者必須要解答的問題。該設計如何的管理框架,提出什么概念來表達?所以要分析Android的電話部分,還是需要理解電話實現的背景知識,通訊協議,大體框架。
我們回到電話系統基本構成上,先從整體上去把握一下電話模塊的大體框架,先從空中俯瞰。我給出的圖是一般的智能手機的框架圖,該框架基本能夠概括所有手機電話模塊的構成,當然也包括Android的電話系統構成。
[](http://hi.csdn.net/attachment/201005/10/0_1273499989K5fj.gif)
智能機架構一般是應用處理器+Modem。應用處理器與Modem的連接使用串口或者USB。在一個硬件串口通路上實現為了要同時實現數據傳輸并同時實現控制Modem,就需要實現多路復用協議(GSM TS07.10),在底層我們在多路復用的基礎上虛擬了兩個串口,一個用于CMD通道,一個用于DATA通道。電話的所有控制通路都是在這連個通道上。
RIL,Radio Interface Layer。本層為一個協議轉換層,手機框架需要適應多類型的Modem接入到系統中,而對于不同的Modem有不同的特性,AT指令的格式或者回應有所不同,但是這種特性在設計應用時不可能完全考慮和兼容。所以設計者在設計電話系統時,建立了一個虛擬電話系統,為該虛擬電話系統規定了標準的功能,上層的電話管理都是建立在這些標準的功能基礎之上。而RIL則是將虛擬電話系統的標準功能轉換成實際的所使用的Modem的AT指令。
Android設計者將電話系統設計成了三部分。
[](http://hi.csdn.net/attachment/201005/10/0_1273499996s44N.gif)
?? Andoird的Phone Service其實是PhoneApp。GSMPhone(CDMAPhone)是Phone Service核心的對象,他包含了如下的相關對象。
[](http://hi.csdn.net/attachment/201005/10/0_1273499998A12D.gif)
我們的分析任務就是要把這些對象的相互關系,及其對象間數據傳遞關系弄清楚。首先我們給出以下的Android電話系統的框架,以便對Android電話系統有個概要的認識,然后從數據流的角度,以及對象的引用關系來分析系統。下面是android電話系統整體框架圖。
[](http://hi.csdn.net/attachment/201005/10/0_127350000175a1.gif)
- 前言
- (一)分析方法論探討之設計意圖
- (二)方法論探討之概念空間篇
- (三)手機之硬件形態
- (四)手機的軟件形態
- (五)基本空間劃分
- (六)IPC框架分析 Binder,Service,Service manager
- (七)Service深入分析
- (八)Android 啟動過程詳解
- (九)Zygote Service
- (十)Android GWES之基本原理篇
- (十一)Android GWES之消息系統
- (十二)Android GEWS窗口管理之基本架構原理
- (十三)Android GWES之Android窗口管理
- (十四)Android GWES之輸入系統
- (十五)Android輸入系統之輸入路徑詳解
- (十六)Android電話系統-概述篇
- (十七)電話系統之rilD
- (十八)Android電話系統之RIL-Java
- (十九)電話系統之GSMCallTacker
- (二十)Android應用程序框架之無邊界設計意圖
- (二十一)Android應用框架之AndroidApplication
- (二十二)Android應用框架之Activity
- (二十三)Andoird GDI之基本原理及其總體框架
- (二十四)Android GDI之顯示緩沖管理
- (二十五)Android GDI之共享緩沖區機制
- (二十六)Android GDI之SurfaceFlinger
- (二十七)Android GDI 之SurfaceFlinger之動態結構示意圖
- (二十八)Android GDI之Surface&Canvas