Google工程師解析Android系統架構

導讀:Sans Serif是Google的一位工程師,近日發佈了一篇博文很是清楚的描述了Android系統架構,中國移動通訊研究院院長黃曉慶在新浪微博上推薦了該文,並認爲文中對Android的介紹很好,以下是CSDN對文章的簡單編譯:android

Andriod是什麼?架構

首先,就像Android開源和兼容性技術負責人Dan Morrill在Android開發手冊兼容性部分所解釋的,「Android並非傳統的Linux風格的一個規範或分發版本,也不是一系列可重用的組件集成,Android是一個用於鏈接設備的軟件塊。」框架

Linux:工具

全部東西的底層是一個穩定的保持更新的Linux內核(我如今用的Nexus手機所用的就是2.6.32版的內核),以及咱們精心打造的能源管理組件;固然還有將它們整合至上層Linux代碼的擴展和公共組件。.net

Dalvik:設計

Android另外一個重要的部分,包括虛擬機和一組重要的運行環境。它的設計很是巧妙,是個很好的一個手機終端的底層應用。接口

代碼如何生成?遊戲

Dalvik虛擬機只執行.dex的可執行文件。當Java程序經過編譯,最後還須要經過SDK中的工具轉化成.dex格式才能在虛擬機上執行。遊戲開發

我須要強調的是,Android應用自己就可視做可在平臺上運行並調用APIs的代碼,因此對代碼如何生成不需特別看重。開發

特別的Apps:

在圖中有些基於Dalvik虛擬機的Apps看起來像是Android的一部分,實際上是由Google提供,這些應用包括Dialer、 Contact、Calendar、Gmail和Chat等。它們中的絕大部分是開源並可複用的。只有少部分例外,好比Google Maps和Android Market.

開源那些事:

在下面的圖中,綠色的大部分組件是基於Apache許可證開源,其他基於GPL、LGPL和BSD。

Android框架

在Android開發者網(developer.android.com)上已有很多篇幅來幫助你使用它,在此就再也不累述。

標準庫

在這裏「標準」是指「開發者在開源環境中通常可使用的」。

App裏面是什麼

一個Android App包含在一個咱們稱之爲APK的壓縮文件夾中,APK並無什麼可說的,須要注意的是Android Manifest——介於App和Android System的接口。

 

其餘

大多數應用是基於Dalvik的,我指的是除了遊戲以外的應用。遊戲開發者一般但願用C/C++來編寫,排斥使用虛擬機,因此他們能夠經過Andriod NDK來開發。(編譯/楊東傑)

相關文章
相關標籤/搜索