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
的**系統構成。
智慧型機架構一般是應用處理器+modem
。應用處理器與
modem
的連線使用串列埠或者
usb。在乙個硬體串列埠通路上實現為了要同時實現資料傳輸並同時實現控制
modem,
就需要實現多路復用協議(
gsm ts07.10
),在底層我們在多路復用的基礎上虛擬了兩個串列埠,乙個用於
cmd通道,乙個用於
data
通道。**的所有控制通路都是在這連個通道上。
ril,radio inte***ce layer。本層為乙個協議轉換層,手機框架需要適應多型別的
modem
接入到系統中,而對於不同的
modem
有不同的特性,
at指令的格式或者回應有所不同,但是這種特性在設計應用時不可能完全考慮和相容。所以設計者在設計**系統時,建立了乙個虛擬**系統,為該虛擬**系統規定了標準的功能,上層的**管理都是建立在這些標準的功能基礎之上。而
ril則是將虛擬**系統的標準功能轉換成實際的所使用的
modem的at
指令。
android設計者將**系統設計成了三部分。
andoird的
phone service
其實是。
gsmphone
(cdmaphone)
是phone service
核心的物件,他包含了如下的相關物件。
我們的分析任務就是要把這些物件的相互關係,及其物件間資料傳遞關係弄清楚。首先我們給出以下的android
**系統的框架,以便對
android
**系統有個概要的認識,然後從資料流的角度,以及物件的引用關係來分析系統。下面是
android
**系統整體框架圖。
摘自:
設計模式之Adapter 電話篇(原創)
設計模式之adapter 篇 前幾天一位朋友把他的 號碼告訴我,我當時隨手抄在一張小紙片上,然後把它夾在了一本書裡,後來沒想到我老婆把這本書郵個他弟了,這不當我有重要的事要和朋友時,沒有辦法聯絡了。書已經被郵了,這是不可更改的事實,打 給朋友說重要的事,也是必須要幹的。這些都不能以我的意志而轉移。我...
android編譯分析之1 概述
最近在研究android的編譯,順著編譯命令一步一步學習了具體makefile中的某些函式功能,記錄了命令執行過程中系統到底發生了什麼,對android系統編譯的整體框架有個大概的了解。在我認為,android相當於乙個非常龐大的嵌入式軟體,我們沒有那麼多的時間和精力去研究透徹android的方方面...
Android中級篇之區分系統程式和安裝程式
在google上輸入以上的關鍵字 android,可以搜到的 1listpacks getpackagemanager getinstalledpackages 0 雖然,有些 號稱可以過濾掉系統自身的應用程式,但是只要細看 就會發現,好像裡面的那個布林變數沒有起到什麼過濾的作用。方法一 通過獲取的...