一、Android的介紹
android介紹見百度百科:Android的介紹,度娘把Android介紹的這么清楚,如果谷歌是Android的爹,那度娘就是娘了。
?
二、Android的架構圖
?
android系統主要分四層:
從上致下:
1、應用層
2、應用框架層
3、核心類庫層
4、linux內核層
?
應用層:
用java開發的應用,分系統應用和非系統應用(開發人員開發的)。
系統應用和非系統應用的區別:
1、系統應用是不能卸載(如果沒有root權限)。非系統應用可以卸載。
2、系統應用可以調用更多的API,非系統應用只能調用SDK中的API,有些API,谷歌不讓開發者調用,開發者要想使用,只能通過意圖Intent調用系統應用。
?
應用框架層:
是對核心類庫調用的實現,核心類庫是用C和C++開發,在開發時遵循規則可以用C和C++開發android應用,但這個開發起來成本太高,太費時,比塞班系統的開發還要難,比J2ME的開發還要難,谷歌為了簡化開發,就用java寫了調用核心類庫的方法,把這些方法封裝成API給開發者調用。因此,應用框架層是用java寫的,是對核心類庫層的調用。
因為應用框架層是用java寫的,所以應用層首選的開發語言是java。
核心類庫層:
為了讓安卓系統具備強大的功能,需要強大的類庫,這些類庫不都是谷歌開發的,大都是比較好的開源項目,谷歌直接拿來用,或者改改直接用。
openglES:游戲開發開源引擎,不是谷歌開發的。
surfaceManager:開源界面管理引擎,不是谷歌開發的。
webkit:開源瀏覽器內核。不是谷歌開發的。
SGL:開源圖形處理引擎,不是谷歌開發的。
SQLITE:android自帶的數據庫。不是谷歌開發的。
--------------------------------
FreeType:字體庫
Media Framework:媒體框架
SSL:基于HTTP的安全協議
?
因為應用框架層是用java寫的,所以android需要java運行時,于是谷歌就在核心類庫層增加了core libraries,dvm。
core libraries:
是java的api,對應用層和應用架構層的java提供java環境支持。
DVM:
在2.3之前是直接用JAVA虛擬機JVM的,因為甲骨文起訴谷歌說安卓侵權,谷歌就把JVM改了,開發出了更適合手機的DVM。因為java的程序在運行時需要轉碼,DVM的功能就是把.class文件轉為機器碼。
?
linux核心層:
包含了硬件接口,用于android系統的移植。
各種硬件驅動:顯示器驅動,攝像頭驅動,閃存驅動,鍵盤驅動,鍵盤驅動,wifi驅動,音頻驅動,電源驅動。
如果做Android移植,需要學習Linux層,核心類庫層,應用框架層。