項目原因,讓我們必須深入探索Android系統,完成對之前的我們來說比較艱巨的任務。這樣,我們開啟了Android深度游。
??????? Android這個系統,應用層開發還是比較舒服的,Google把一切都安排好了,只要會Java就可以開發出絢爛多彩的應用。而它的內部還是比較龐大的,啃動它還是比較困難的,雖然它是open的,但面對海洋一般的代碼,難免會迷失。
??????? 先看看Android系統的架構圖

從下到上共分四層:Linux kernel、libraries、application framework、applications
Android是基于Linux內核的,這是第一層。這就意味著你要有Linux的經驗。Lniux內核與Linux驅動的知識是少不了的。對于內核相關的書籍,個人正在看兩本國人寫的書《Linux內核完全注釋》和《Linux內核源代碼情景分析》。
??????? 前一本書的作者是趙炯,主要分析0.11版的kernel。從代碼量較少的但比較成型的內核說起,容易理解也不會被龐大的代碼量所嚇到。內面對linux歷史背景和一些原理都有講解,這樣比干巴巴的分析代碼強多了,也易于理解和消化。
??????? 另一本書的作者陣容還是很強大的。作者毛德操與胡希明都是教授級的人物,毛先生現已定居美國,而此書是兩人聯袂把當時共事時的心得與體會都分享出來,其實也是對過往歲月的一種紀念,一種友誼萬歲的情懷。本書針對kernel 2.4.0,超級詳細的理清脈絡,從情景出發分析探尋kernel世界。是本不可多得的國人經典。
驅動方面,其實是整個內核代碼量最多的部分。但我最近都是在網上找一些資料,并沒有深入讀書研究,可以延后再辦。
第二層是公共庫和Android的運行時,Libraries都是很大的題目,有專門的書籍討論,而我主要把精力放在Android運行時上。
??????? Android運行時是由Dalvik虛擬機和核心庫組成的。這方面可以閱讀楊豐盛的《Android技術內幕:系統卷》,專門開辟一張來講虛擬機。別看運行時只占架構圖中的一小部分,但它的重要性很高,每個應用程序都是跑在這里的。
第三層是應用框架層,為第四層應用層暴漏API接口。
期間我閱讀以下幾本書,感覺都能夠學到一些東西。都是國人所做。
1.《深入理解Android》(卷1)和(卷2) 鄧凡平著。
??????? 我的啟蒙書。在這里我仔細學習了VOLD等詳細分析,至今印象深刻。前后兩本,足夠帶你去Android的內部逛一圈,并且有所收獲。把它們放在桌上,隨時翻閱,隨時收益。從Android框架的初始化開始,走過的所有組件,都有涉獵。但當某一個知識點需要更詳細的分析時,感到書中給出的略有些不足。這可以理解,因為知識覆蓋面太廣,誰也不是各個領域的專家,有不足很正常。
2.《Android技術內幕:系統卷》 楊豐盛著。
??????? 此書是我最早入手的,大概是剛剛上市。當時我正在做Android應用開發,由于其太深入到系統內部了,涉及各種驅動,讀起來吃力不討好。放下了,最近撿起來一看,也會找到我想要的,真是慶幸自己當時的選擇。
3.《Android內核剖析》 柯元旦
??????? 內核剖析,是用來吸引人的,并沒有得到大家的共鳴。本書覆蓋的知識點很廣,但是有些蜻蜓點水,一帶而過。最可怕的是,錯別字很多,有些都影響到內容的表達了。我的評價不高,大家可以試讀一下。
4.《深入剖析Android系統》 楊長剛
??????? 印象最深的是Android的啟動過程,里面講的很不錯。我之前沒有深入分析,讀過之后感覺澄清了許多問題,也彌補了之前的無知。讀起來也不錯,但是時間原因不能精讀,放在那里隨時翻閱。
最后,貼一張很有營養的圖,來自[makelinux](http://www.makelinux.net/android/internals/)。

- 前言
- 讀《Linux內核設計與實現》我想到了這些書
- 夢想的啟航,那些年,那些書
- C++和Windows平臺的一些書籍
- java一路走來
- 《Android入門之旅》
- 致我們終將逝去的青春-PHP篇
- 多讀書,讀好書
- 這些年,那些我們一起讀過的代碼
- C++碼農要讀的經典
- 閱讀IT類圖書,能夠收獲什么
- 讀完《大數據時代》的一點兒心得
- 這些日子我讀過的《java編程思想》
- 關于C,看過的一些書
- Android系統深度游
- 《《內存和性能優化》》給我帶來的!
- 「書評」SAP內存計算——HANA
- 書籍記錄了我技術的成長歷程
- 那一年讀過的技術經典書
- 【時間規劃】C/C++發展之路--讀書
- UNIX 環境高級編程之我見
- 游戲開發圖書推薦--我讀過的技術經典圖書
- 自己動手寫操作系統-經典書籍
- 游戲升級之路
- 《SQL Server 2005開發技術大全》分享一本書
- 書,永遠的朋友
- 學生時代的書單
- 追求技術之路 - 那些陪伴我的書籍
- 經典書籍--好書很多,重要的是有個目標,有個規劃
- android系統深入開發
- 這些年一路相伴的書
- 從零開始學
- 這些年我讀過的技術經典圖書(附電子版下載地址)
- 書--益友--從不孤單
- 給自己時間沉淀下來
- 那些支持我學習與工作的良師益友
- 文章千古事、得失寸心知
- 從Linux 驅動到游戲可視化轉行要讀的書
- 那些年,我們一起讀過的《JAVA與模式》
- 往事不堪回首 -- 多讀書
- 我程序人生的啟蒙書
- 一個不喜歡讀書的Javaer的讀書單
- 一本書,讓我走上編程之路
- 程序員讀書的五重天
- 大學那會兒,我讀過的技術經典圖書
- C語言高手進階的三碟小菜和一盤大餐