Android 進階學習筆記整理

一.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 源碼分析(一) 開篇介紹
  2. Android 源碼分析(二) Activity 啓動分析
  3. Android 源碼分析(三) Service 啓動分析
  4. Android 源碼分析(四) Handler 異步消息機制
  5. Android 源碼分析(五) Zygote 進程
  6. Android 源碼分析(六) SystemServer 進程
  7. Android 源碼分析(七) Launcher 桌面程序啓動分析
  8. Android 源碼分析(八) Launcher 桌面啓動App過程
  9. Android 源碼分析(九) Init 啓動分析
  10. Android 源碼分析(十) Dalvik 虛擬機建立過程
  11. Android 源碼分析(十一) 事件傳遞機制Android源碼分析(十二)ServiceManager服務分析
  12. Android源碼分析(十二)ServiceManager服務分析
  13. Android源碼分析(十三)ActivityManagerService服務分析
  14. Android源碼分析(十四)PackageManagerService服務分析

三.學習資料

  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 框架層研究比較透徹的兩位大牛的bolg,他們幫助我加深了不少概念的理解。感謝他們。
  《深刻理解Android系列》叢書的做者: http://www.cnblogs.com/innost
  《Android系統源代碼情景分析》做者: https://blog.csdn.net/Luoshengyang/
        個人系列隨筆只是做爲一個本身的學習筆記,理解程度沒法與兩位大牛著做對比,可是能夠做爲讀者或者本身初步探索Android源碼和理解其實現原理的第一步。
       
        在工做中,會發現,其實不少東西,咱們都會,可是就是講不出來。學計算機出生,保持嚴謹性是必須的,有時候正由於時刻的嚴謹性,讓咱們不敢輕易對一些概念東西給出本身觀點,怕說錯,歸根究竟是對其實現原理理解不夠透徹,讓咱們畏手畏腳的進行總結。「大膽假設,當心驗證」 我想這句話能夠做爲咱們學習技術的一個參考。
 
 
附上android知識體系圖
  
相關文章
相關標籤/搜索