Android電話系統之概述篇

首先拋開Android的一切概念來研究一下電話系統的最基本的描述。咱們的手機首先用來打電話的,隨後是須要一個電話本,隨後是PIM,隨後是網絡應用,隨後是雲計算,隨後是想咱們的手機無所不能,替代PC。可是做爲一個電話的基本功能以下: android

0)撥叫電話,接聽電話,掛斷電話,發送短信,網絡鏈接,PIM管理 網絡

1)因爲電話運營商爲咱們提供了呼叫等待,電話會議等補充業務,因此咱們的手機須要管理多路通話,如何管理? 架構

2)來電時,咱們要播出來電鈴聲,接通時咱們須要切換語音通道,這個又跟多媒體系統打上了交道,例若有耳機插上了,有藍牙耳機連上了,系統該作如何的管理和切換? 框架

3)上網的網絡通路創建(例如GSM GPRS),如何PPP鏈接並鏈接到LinuxSocket通道上的?系統如何管理數據鏈接? 函數

4)AP跟Modem通信時經過AT指令的,如何將AT指令變成一個個具體的操做函數,如何管理Modem發給咱們的迴應,AT命令通道,數據通道如何管理? 雲計算

5)sim卡的電話本如何管理? spa

上面的關於手機的基本問題,Android電話系統設計者必需要解答的問題。該設計如何的管理框架,提出什麼概念來表達?因此要分析Android的電話部分,仍是須要理解電話實現的背景知識,通信協議,大致框架。 設計

    咱們回到電話系統基本構成上,先從總體上去把握一下電話模塊的大致框架,先從空中俯瞰。我給出的圖是通常的智能手機的框架圖,該框架基本可以歸納全部手機電話模塊的構成,固然也包括Android的電話系統構成。 對象

image

    智能機架構通常是應用處理器+Modem。應用處理器與Modem的鏈接使用串口或者USB。在一個硬件串口通路上實現爲了要同時實現數據傳輸並同時實現控制Modem,就須要實現多路複用協議(GSM TS07.10),在底層咱們在多路複用的基礎上虛擬了兩個串口,一個用於CMD通道,一個用於DATA通道。電話的全部控制通路都是在這連個通道上。 it

   RIL,Radio Interface Layer。本層爲一個協議轉換層,手機框架須要適應多類型的Modem接入到系統中,而對於不一樣的Modem有不一樣的特性,AT指令的格式或者回應有所不一樣,可是這種特性在設計應用時不可能徹底考慮和兼容。因此設計者在設計電話系統時,創建了一個虛擬電話系統,爲該虛擬電話系統規定了標準的功能,上層的電話管理都是創建在這些標準的功能基礎之上。而RIL則是將虛擬電話系統的標準功能轉換成實際的所使用的Modem的AT指令。

Android設計者將電話系統設計成了三部分。

image

    Andoird的Phone Service實際上是PhoneApp。GSMPhone(CDMAPhone)是Phone Service核心的對象,他包含了以下的相關對象。

image

       咱們的分析任務就是要把這些對象的相互關係,及其對象間數據傳遞關係弄清楚。首先咱們給出如下的Android電話系統的框架,以便對Android電話系統有個概要的認識,而後從數據流的角度,以及對象的引用關係來分析系統。下面是android電話系統總體框架圖。

image

相關文章
相關標籤/搜索