Google資深工程師詳解Android的系統架構

2011年,Google的一位工程師Sans Serif發佈了一篇博文很是清楚的描述了Android系統架構,中國移動通訊研究院院長黃曉慶在新浪微博上推薦了該文,並認爲文中對Android的介紹很好,您能夠看一下Google工程師眼中的Android系統架構是什麼樣的。如下爲Sans Serif博文的譯文:

  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資料和教材——選對教材是快速入門的關鍵
相關文章
相關標籤/搜索