一.android系統架構圖及各層介紹
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 框架層:
- Android 源碼分析(一) 開篇介紹
- Android 源碼分析(二) Activity 啟動分析
- Android 源碼分析(三) Service 啟動分析
- Android 源碼分析(四) Handler 異步消息機制
- Android 源碼分析(五) Zygote 進程
- Android 源碼分析(六) SystemServer 進程
- Android 源碼分析(七) Launcher 桌面程序啟動分析
- Android 源碼分析(八) Launcher 桌面啟動App過程
- Android 源碼分析(九) Init 啟動分析
- Android 源碼分析(十) Dalvik 虛擬機創建過程
- Android 源碼分析(十一) 事件傳遞機制Android源碼分析(十二)ServiceManager服務分析
- Android源碼分析(十二)ServiceManager服務分析
- Android源碼分析(十三)ActivityManagerService服務分析
- Android源碼分析(十四)PackageManagerService服務分析
三.學習資料
1.Android源碼 https://pan.baidu.com/s/15PNt1W4jjxZXM9o-qCC94A 密碼:p3td
2.Android 6.0 離線API https://pan.baidu.com/s/17E01X32lHOrz0FN_QlXmwQ 密碼: styi
3.探索Android FrameWork底層開發視頻 https://pan.baidu.com/s/14BiZNm2C362afq3K-c3AJA 密碼: i7yd
在學習過程中借鑒也翻閱了很多網上大牛的一些文章,加深自己的理解,如果文中未注明出處原文,還請原作者諒解,因為實在是找不到原文了。這里我推薦兩個對Android 框架層研究比較透徹的兩位大牛的bolg,他們幫助我加深了很多概念的理解。感謝他們。
《深入理解Android系列》叢書的作者: http://www.cnblogs.com/innost
《Android系統源代碼情景分析》作者: https://blog.csdn.net/Luoshengyang/
《深入理解Android系列》叢書的作者: http://www.cnblogs.com/innost
《Android系統源代碼情景分析》作者: https://blog.csdn.net/Luoshengyang/
我的系列隨筆只是作為一個自己的學習筆記,理解程度無法與兩位大牛著作對比,但是可以作為讀者或者自己初步探索Android源碼和理解其實現原理的第一步。
在工作中,會發現,其實很多東西,我們都會,但是就是講不出來。學計算機出生,保持嚴謹性是必須的,有時候正因為時刻的嚴謹性,讓我們不敢輕易對一些概念東西給出自己觀點,怕說錯,歸根到底是對其實現原理理解不夠透徹,讓我們畏手畏腳的進行總結。“大膽假設,小心驗證” 我想這句話可以作為我們學習技術的一個參考。
附上android知識體系圖:
