學習筆記| (六)Android系統架構

一、系統架構

1.1 應用層:

主要是一些系統應用以及一些非系統應用,用於與用戶直接進行交互的

1.2應用框架層:

對開發人員提供一些開發的API,包括一些系統應用;其中包括一些Managers:
Activity Manager、Location Manager、Package Manager、Notification Manager、Resource Manager 、Window Manager、Content Providers 、View System

1.3系統運行庫層(Native)
  • C/C++程序庫
    能被Android 系統中的不同組件所使用,並通過應用程序框架爲開發提供服務
    Sqlite

  • Android 運行時庫
    又分爲核心庫ART(Android Runtime,Android5.0後取代了Dalvik虛擬機)
    ART > DVM >JVM

①相比於 JVM,DVM(Dalvik 虛擬機)是專門爲移動開發定製的,因爲它允許在有限的內存內,同時允許多個 Dalvik虛擬機的實例,並且每一個Dalvik應用作爲一個獨立的Linux進程執行,而獨立的進程可以防止在虛擬機崩潰的時候所有程序都被關閉;

②DVM中的應用每次運行的時候,都需要通過JIT(Just In Time)即時編譯器,將字節碼轉換爲機器碼,這樣使得運行的效率降低;

③ART中,系統在安裝應用時會進行一次預編譯AOT(Ahead of Time),將字節碼預先編譯成機器碼存儲在本地,這樣每次運行的時候都不需要執行編譯了,運行效率大大提高;

1.4硬件抽象層(HAL)

位於操作系統內核層和硬件電路層之間的接口層,目的在於將硬件抽象化,爲了保護硬件廠商的知識產權,隱藏了特定平臺的硬件接口細節,爲操作系統提供虛擬硬件平臺,使其具有硬件無關性,可在多個平臺上進行移植;

1.5Linux內核層(Linux Kernel)

Android核心系統服務基於 Linux內核層,在此基礎上又添加了部分Android專用的驅動。系統的安全性、內存管理、進行管理、網絡協議棧、驅動模型等都依賴於該內核;

二、源碼閱讀:

1.在線閱讀:

http://androidxref.com/

點擊版本進入對應的頁面,比如8.0:
比如在framework中搜索 MediaPlayer.java


2.本地閱讀:

下載源碼到本地後,可以使用Android Studio、Eclipse、Sublime、Source Insight(推薦)

這裏使用Source Insight
http://www.cnblogs.com/dakewei/p/7993613.html

下資源碼:
https://pan.baidu.com/s/1ngsZs

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章