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 密碼: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源碼和理解其實現原理的第一步。
       
        在工作中,會發現,其實很多東西,我們都會,但是就是講不出來。學計算機出生,保持嚴謹性是必須的,有時候正因為時刻的嚴謹性,讓我們不敢輕易對一些概念東西給出自己觀點,怕說錯,歸根到底是對其實現原理理解不夠透徹,讓我們畏手畏腳的進行總結。“大膽假設,小心驗證” 我想這句話可以作為我們學習技術的一個參考。
 
 
附上android知識體系圖
  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM