Andriod是什麼?android
首先,就像Android開源和兼容性技術負責人Dan Morrill在Android開發手冊兼容性部分所解釋的,「Android並非傳統的Linux風格的一個規範或分發版本,也不是一系列可重用的組件集成,Android是一個用於鏈接設備的軟件塊。」 架構
Andriod是什麼?框架
Linuxide
全部東西的底層是一個穩定的保持更新的Linux內核(我如今用的Nexus手機所用的就是2.6.32版的內核),以及咱們精心打造的能源管理組件;固然還有將它們整合至上層Linux代碼的擴展和公共組件。工具
Dalvikui
Android另外一個重要的部分,包括虛擬機和一組重要的運行環境。它的設計很是巧妙,是個很好的一個手機終端的底層應用。spa
代碼如何生成?.net
Dalvik虛擬機只執行.dex的可執行文件。當Java程序經過編譯,最後還須要經過SDK中的工具轉化成.dex格式才能在虛擬機上執行。設計
我須要強調的是,Android應用自己就可視做可在平臺上運行並調用APIs的代碼,因此對代碼如何生成不需特別看重。blog
特別的Apps
在圖中有些基於Dalvik虛擬機的Apps看起來像是Android的一部分,實際上是由Google提供,這些應用包括Dialer、Contact、Calendar、Gmail和Chat等。它們中的絕大部分是開源並可複用的。只有少部分例外,好比Google Maps和Android Market.
開源那些事
在下面的圖中,綠色的大部分組件是基於Apache許可證開源,其他基於GPL、LGPL和BSD。
開源的Android
Android框架
在Android開發者網(developer.android.com)上已有很多篇幅來幫助你使用它,在此就再也不累述。
Android框架
標準庫
在這裏「標準」是指「開發者在開源環境中通常可使用的」。
App裏面是什麼
一個Android App包含在一個咱們稱之爲APK的壓縮文件夾中,APK並無什麼可說的,須要注意的是Android Manifest——介於App和Android System的接口。
App裏面是什麼(1)
App裏面是什麼(2)
其餘
大多數應用是基於Dalvik的,我指的是除了遊戲以外的應用。遊戲開發者一般但願用C/C++來編寫,排斥使用虛擬機,因此他們能夠經過Andriod NDK來開發。
介紹幾本初學Android資料和教材——選對教材是快速入門的關鍵