Android 核心分析 之五 —–基本空間劃分

來源:互聯網
上載者:User

from : http://blog.csdn.net/maxleng/article/details/5490713

基本空間劃分

Google給了我們一張系統架構圖,在這張圖上我們可以看到Android的大體架構組成。

 

 

 

 

 

 

從可以看到:Android Applications,Application Framework,Dalvik Virtual Machine,Linux。如果將Android泛化,我們可以將系統劃分成兩部分:

 

 

 

 但是為了研究的方便我們先看最為本質的三層,上面是Android,中間叫Dalvik虛擬機器,下面叫Linux。

 

 

 

    雖然上兩層都包含在Android中,但是為了理解的方便或者從實用主義出發,我還是將虛擬機器這次給分開出來,因為我研究的對象是Android的手機系統相關部分,對於虛擬機器我們不做太深入的研究。

e: pre;">從上面我們可以看到這個系統靜態劃分成這樣的三層。但是從動態運行邏輯上不是這樣劃分的,所以空間的劃分是一個有趣的概念。我們從作業系統的角度看,Android就是一堆Linux應用的集合。從Linux角度看到的空間劃分:進程空間和核心空間。從Android的應用對應著Linux的一個個進程。

 

 Andoid中包含一個Java虛擬機器,虛擬機器是運行在Linux之上的,Android構建在JVM之上,從Android動態運行邏輯上我們需要將Android劃分成Android空間和非Android空間。在Andoid系統中我們面對的是Andoid概念空間,而不是Linux進程了,在Andoid概念空間中已經沒有了Lliux進程的概念,而是Service,proxy,Activity,provider等。

 

 

 

至於虛擬機器JVM,我們只需要知道JVM是Dalvik VM(虛擬機器)這是一個專為嵌入式裝置打造的JAVA虛擬機器,是一個有著自己的code-byte和格式的可以在嵌入式裝置上高效啟動並執行Java虛擬機器。

 

為了研究的深入,我們還是需要涉及到JNI Native部分。在這個分類中我將JVM分為JVM空間和C++空間。

 

 

 

Android應用的開發人員是工作在Android外特性概念空間的,這裡沒有了Linux的一點氣息,Android構建的外特性空間概念包含了:Activity,Provider,Interface,Events,Provider,Service等。至於JVM空間和C++空間的劃分是為了研究Android核心的描述而提出的,我們在做Android系統開發時,常常需要修改到JNI的Native部分。後面我將用較多的篇幅來深入闡述這個部分。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.