Google工程師多圖詳解Android架構
Google的一位工程師Sans Serif釋出了一篇博文非常清楚的描述了Android系統架構,中國行動通訊研究院院長黃曉慶在新浪微博上推薦了該文,並認為文中對Android的介紹很好,您可以看一下Google工程師眼中的Android系統架構是什麼樣的。以下為Sans Serif博文的譯文:
Andriod是什麼?
首先,就像Android開源和相容性技術負責人Dan Morrill在Android開發手冊相容性部分所解釋的,“Android並不是傳統的Linux風格的一個規範或分發版本,也不是一系列可重用的元件整合,Android是一個用於連線裝置的軟體塊。”
Andriod是什麼?
Linux
所有東西的底層是一個穩定的保持更新的Linux核心(我現在用的Nexus手機所用的就是2.6.32版的核心),以及我們精心打造的能源管理元件;當然還有將它們整合至上層Linux程式碼的擴充套件和公共元件。
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框架
在Android開發者網(developer.android.com)上已有不少篇幅來幫助你使用它,在此就不再累述。
Android框架
標準庫
在這裡“標準”是指“開發者在開源環境中一般可以使用的”。
App裡面是什麼
一個Android App包含在一個我們稱之為APK的壓縮資料夾中,APK並沒有什麼可說的,需要注意的是Android Manifest——介於App和Android System的介面。
App裡面是什麼(1)
App裡面是什麼(2)
其他
大多數應用是基於Dalvik的,我指的是除了遊戲之外的應用。遊戲開發者通常希望用C/C++來編寫,排斥使用虛擬機器,所以他們可以通過Andriod NDK來開發。
英文原文:What Android Is
相關文件:Android 的平臺架構及特性
相關文章
- RabbitMQ架構詳解(7大架構原理模型圖解)MQ架構模型圖解
- Facebook移動架構:Android Flux架構詳解架構AndroidUX
- Android 檢視架構詳解Android架構
- Android架構元件WorkManager詳解Android架構元件
- Android系統架構詳解(2)--Android RuntimeAndroid架構
- Android開發中的MVP架構詳解AndroidMVP架構
- Android應用中Clean架構使用詳解Android架構
- Android 圖形架構Android架構
- iOS架構詳解iOS架構
- google hack 的詳細圖解Go圖解
- Android系統架構圖Android架構
- Kafka 架構和原理機制 (圖文全面詳解)Kafka架構
- kafka核心架構詳解Kafka架構
- TDengine 3.0 架構詳解架構
- Chromium VIZ架構詳解架構
- Angular 4.0 架構詳解Angular架構
- Jenkins架構詳解Jenkins架構
- Android 圖形架構簡介Android架構
- 高併發架構最全詳解(圖文全面總結)架構
- SpringMVC詳解(二)------詳細架構SpringMVC架構
- HotDB 基礎架構詳解架構
- 3.4 以太坊架構詳解架構
- Dubbo架構設計詳解架構
- Angular4.0架構詳解Angular架構
- 詳解安卓架構入門安卓架構
- Android 向量圖詳解Android
- 圖解 Kubernetes 架構圖解架構
- 圖解架構 | SaaS、PaaS、IaaS圖解架構
- Android Architecture Blueprints(架構藍圖)Android架構
- Android 控制元件架構與自定義控制元件詳解Android控制元件架構
- 軟體架構-nginx詳解上架構Nginx
- 1.5 比特幣架構詳解比特幣架構
- [大資料] Spark架構詳解大資料Spark架構
- 乾貨:軟體架構詳解架構
- MySQL 主從架構配置詳解MySql架構
- 軟體工程師,如何繪製業務架構圖 — 2.框架圖軟體工程工程師架構框架
- 長文圖解:詳解金字塔原理如何應用於架構設計圖解架構
- 架構設計 | 非同步處理流程,多種實現模式詳解架構非同步模式