一.android系統架構圖及各層介紹
1. 應用層:應用是用java語言編寫的運行在虛擬機上的程序,好比通信錄,日曆,電話,短信,瀏覽器等。
2. 應用框架層:這一層是編寫Google發佈的核心應用時所使用的API框架,開發人員一樣可使用這些框架來開發本身的應用,這樣便簡化了程序開發的結構設計,可是必需要遵照其框架的開發原則。應用程序框架層包括活動管理器、窗口管理器、內容提供者、視圖系統、包管理器、電話管理器、資源管理器、位置管理器、通知管理器和XMPP服務十個部分。
3. 統運行庫(C/C++庫以及Android運行庫)層:當使用Android應用框架時,Android系統會經過一些C/C++庫來支持咱們使用的各個組件,使其更好的爲咱們服務,好比其中的SQLite(關係數據庫),Webkit,chromium(Web瀏覽器引擎),Dalivk,ART(Android Runtime)。
4.Linux內核層:Android的核心繫統服務基於Linux內核,如安全性、內存管理、進程管理、用戶權限管理、網絡協議棧和驅動模型等都依賴於該內核,好比Binder IPC(Internet Process Connection進程間通訊)驅動,android的一個特殊驅動程序,具備單獨的設備節點,提供進程間通訊的功能。
如果從事Android應用開發,那應該研究Android的應用框架層和應用程序層;如果從事Android系統開發,那應該研究Android的系統庫和Android運行時;如果從事Android驅動開發,那應該研究Android的Linux內核。找準定位,事倍功半。
二. 隨筆整理(導讀)
Android 應用層:
Android 框架層:
三.學習資料
1.Android源碼 https://pan.baidu.com/s/15PNt1W4jjxZXM9o-qCC94A 密碼:p3tdhtml
2.Android 6.0 離線API https://pan.baidu.com/s/17E01X32lHOrz0FN_QlXmwQ 密碼: styijava
3.探索Android FrameWork底層開發視頻 https://pan.baidu.com/s/14BiZNm2C362afq3K-c3AJA 密碼: i7ydandroid
個人系列隨筆只是做爲一個本身的學習筆記,理解程度沒法與兩位大牛著做對比,可是能夠做爲讀者或者本身初步探索Android源碼和理解其實現原理的第一步。
在工做中,會發現,其實不少東西,咱們都會,可是就是講不出來。學計算機出生,保持嚴謹性是必須的,有時候正由於時刻的嚴謹性,讓咱們不敢輕易對一些概念東西給出本身觀點,怕說錯,歸根究竟是對其實現原理理解不夠透徹,讓咱們畏手畏腳的進行總結。「大膽假設,當心驗證」 我想這句話能夠做爲咱們學習技術的一個參考。
附上android知識體系圖: