2013年11月27日 星期三

[Android]Android系統架構


本文介紹Android系統架構介紹很好,故轉載保留,如有侵權請告知,以刪除,感謝。

導讀:Sans Serif是Google的一位工程師,近日發佈了一篇博文非常清楚的描述了Android系統架構,中國移動通信研究院院長黃曉慶在新浪微博上推薦了該文,並認為文中對Android的介紹很好,如下是CSDN對文章的簡單編譯:
Andriod是什麼?
首先,就像Android開源和相容性技術負責人Dan Morrill在Android開發手冊相容性部分所解釋的,「Android並不是傳統的Linux風格的一個規範或分發版本,也不是一系列可重用的元件集成,Android是一個用於連接設備的軟體塊。
8ae46d15hc52b89d8f347&690 
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。
8ae46d15hc52b8e90efbc&690 
Android框架
在Android開發者網(developer.android.com)上已有不少篇幅來説明你使用它,在此就不再累述。
8ae46d15hc52b8d2b5f9c&690 
標準庫
在這裡「標準」是指「開發者在開源環境中一般可以使用的」。
App裡面是什麼
一個Android App包含在一個我們稱之為APK的壓縮資料夾中,APK並沒有什麼可說的,需要注意的是Android Manifest——介於App和Android System的介面。
8ae46d15hc52b8c442fd1&6908ae46d15hc52b8a76481f&690




其他
大多數應用是基於Dalvik的,我指的是除了遊戲之外的應用。遊戲開發者通常希望用C/C++來編寫,排斥使用虛擬機器,所以他們可以通過Andriod NDK來開發。(編譯/楊東傑)
原文:HTTP://www.tbray.org/ongoing/When/201x/2010/11/14/What-Android-Is
本文轉載自:HTTP://www.tbray.org/ongoing/When/201x/2010/11/14/What-Android-Is



















其它文章

沒有留言:

張貼留言

標籤

Oracle (150) Oracle DB (144) Oracle_DB (143) Oracle SQL (135) JAVA (84) css-基本類 (65) MySQL (59) CSS Selector (58) jQuery (49) JavaScript-基本類 (39) Spring Boot (38) JavaScript (37) JavaScript HTML DOM (37) JavaScript-HTML_DOM (36) CSS3 (30) JAVA-基本類 (28) jQuery UI (27) Apache (23) Oracle GROUP BY (20) datepicker (20) Android (18) Oracle Date (17) c (17) JAVA-lang套件 (16) Linux (16) Oracle Sub Query (16) Spring-基本類 (16) jQuery-基本類 (16) MySQL-進階系列教學 (15) Android基本類 (14) Grails (14) Oracle join (14) SQLite (13) Spring (13) WIN7-基本類 (13) grails-基本類 (13) linux cent os (13) CKEditor (12) JAVA-流程控制類 (12) JAVA_Spring (12) PHP (11) Spring MVC (11) MySQL-基本系列教學 (10) Notepad (10) Notepad++ (10) SQLite for java (10) Windows (10) c/c++ (10) eclipse (9) jQuery-Selector (9) sqldeveloper (9) DB_Toad (8) JAVA_IDE_Eclipse (8) JavaScript-String類 (8) MySQL DB Toad (8) MySQL-DATE相關 (8) MySQL-函式相關 (8) Spring Bean (8) Android Studio (7) HTML5 (7) Hibernate (7) JAVA-OCWCD (7) JavaScript-陣列類 (7) Docker (6) JAVA-程式分享 (6) JAVA.util套件 (6) JavaScript-數學類 (6) MinGw (6) MySQL-其它類 (6) Servlet (6) centos (6) Apache_Tomcat (5) Apache套件_POI (5) CSS (5) JavaScript-Date物件 (5) JavaScript-其它類 (5) PostgreSQL (5) httpd (5) log4j (5) 基本資訊 (5) 開發工具 (5) CSS Properties (4) Dev-C++ (4) IntelliJ IDEA (4) Oracle DDL (4) Sublime (4) TortoiseSVN (4) apache_Maven (4) Android NDK (3) Eclipse IDE for C/C++ (3) Hibernate-基本類 (3) JAVA-問題 (3) JAVA-綀習分享 (3) JVM (3) Linux 指令 (3) Proxy Server (3) Spring Mobile (3) Spring web (3) Squid (3) VirtualBox (3) maven (3) zk (3) 生活其它 (3) Bootstrap (2) Filter (2) JAVA_IO (2) JAVA_其它_itext套件 (2) JBoss-問題 (2) JSP (2) Jboss (2) Listener (2) MySQL-語法快速查詢 (2) Spring AOP (2) Spring Batch (2) Spring Boot Actuator (2) Spring i18n (2) Subversive (2) Tomcat 8 (2) UML (2) WebJars (2) WinMerge (2) c++ (2) c語言綀習題 (2) jQuery Mobile (2) jQuery-事件處理 (2) jQuery-套件類 (2) putty (2) svn (2) weblogic (2) Apache_JMeter (1) Apache套件_BeanUtils (1) Apache套件_StringUtils (1) Base64 (1) Google API (1) HTML5-基本類 (1) Heap (1) JAVA 7 (1) JAVA SE 、JAVA EE、JAVA ME (1) JAVA 日期 (1) JAVA-OCJP (1) JAVA-WEB (1) JAVA_IDE (1) JAVA其它 (1) JBoss Server (1) JDK (1) JMX (1) JRE (1) Java RMI (1) Java String (1) Joda Time (1) Linux_其它 (1) MySQL教學 (1) Oracle_VirtualBox (1) SQL Server (1) SWT (1) Session (1) Stack (1) Struts 2 (1) Tool (1) ZK Studio (1) csv (1) grails-其它類 (1) jQuery-進階 (1) java mail (1) java web (1) java8 (1) jsoup (1) mockmvc (1) modules (1) tomcat (1) win10 (1) 其它類 (1) 圖片工具 (1) 模擬器 (1) 讀書分享 (1) 開發資訊 (1)

精選文章

初學 Java 的 HelloWorld 程式

撰寫一個JAVA程式 public class HelloWorld{ public static void main(String[ ] args){ System.out.println("我第一支Java程式!!"); } } ...