Android系統架構

來源:互聯網
上載者:User

標籤:

1、Android系統架構

最新的Android系統分為五層六區(域):

  1. Linux核心層(Linux Kernel):Android系統基於Linux2.6核心,這一層為Android裝置各種硬體提供了底層驅動,如顯示驅動、音頻驅動、照相機驅動、藍牙堆疊、Wi-Fi驅動、電源管理等;
  2. 硬體抽象層(android hardware abstraction layer):安卓驅動硬體的方式與Linux不盡相同。傳統Linux的驅動完全存活於核心空間。Android則在核心外部增加了硬體抽象層(HAL, Hardware Abstraction Layer),把一部分驅動功能放到HAL層中。安卓為什麼費盡麻煩增加一個HAL呢?為了保護原始碼。Linux核心採用了GPL協議,所以硬體生產商想要支援Linux系統,必須遵照GPL協議公開硬體驅動的原始碼。但這些原始碼中包含有許多硬體的設計資訊,牽涉到硬體生產商的核心利益。而增加了HAL層之後,硬體廠商就不需要開放所有的驅動代碼了。
  3. 系統運行庫層(libraries):這一層通過一些C/C++庫(so庫)來為Android系統提供了主要的特性支援。如SQLite庫提供了資料庫支援,OpenGL ES庫提供了3D繪圖支援,Webkit庫提供了瀏覽器核心支援等;
  4. 應用程式框架層(application framework):這一層主要提供構建應用程式時可能用到的各種API,Android內建的一些核心應用就是使用這些API完成的,開發人員也可通過使用API來構建自己的應用程式;
  5. 應用程式層(applications):這一層主要用於手機應用的安裝,如系統內建連絡人、簡訊等程式,或是第三方應用程式

  以上為五層五區,還有一個地區是存在於libraries層的Android執行階段程式庫(Android Runtime),它主要提供一些核心庫,能夠允許開發人員使用Java語言來編寫Android應用。另外Android執行階段程式庫中還包含了Dalvik虛擬機器,它使得每一個Android應用都能運行在獨立的進程中,且擁有一個自己的Dalvik虛擬機器執行個體。相較於Java虛擬機器,Dalvik是專門為行動裝置定製的,它針對手機記憶體、CPU效能有限等情況作了最佳化處理。 

2、拓展2.1 Dalvik虛擬機器 

  安卓的應用是由Java編寫的,而包括HAL在內的Linux的庫都是由C/C++編寫的,這個落差由Dalvik虛擬機器銜接的。當一個應用運行時,進程空間內將包含一個Dalvik虛擬機器。Java程式編譯為位元組碼檔案,運行在Dalvik虛擬機器中。根據Java代碼中的要求,Dalvik通過JNI(Java Native Interface)調用底層的C/C++編寫的功能。JNI是從Java中調用C/C++模組的介面。由於上層介面的標準化,位元組碼可以暢通無阻的跨平台運行。

  Dalvik虛擬機器內部是一個“虛擬”進程空間,有自己的棧和堆,管理代碼的運行流程。如果這以“虛擬”進程空間不足,Dalvik內建的記憶體回收(garbage collection)機制會自動清空堆上不再使用的對象。自動的記憶體回收簡化了程式員的工作,但速度較慢。手動記憶體管理效率高,但需要更多的編程,且容易犯錯。

2.2 JNI 

http://www.2cto.com/kf/201502/377185.html

 http://www.cnblogs.com/mandroid/archive/2011/06/15/2081093.html

Android系統架構

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.