1. 程式人生 > >《深入理解Android 卷III》推薦序

《深入理解Android 卷III》推薦序

轉載:https://blog.csdn.net/innost/article/details/47292791

《深入理解Android 卷III》即將釋出,作者是張大偉。此書填補了深入理解Android Framework卷中的一個主要空白,即Android Framework中和UI相關的部分。在一個特別講究顏值的時代,本書分析了Android 4.2中WindowManagerService、ViewRoot、Input系統、StatusBar、Wallpaper等重要“顏值繪製/處理”模組

推薦序

回顧

今天是一個值得高興的日子。歷經兩年多的艱苦奮鬥,張大偉同學的這本著作,同時也是隸屬“深入理解Android”系列三卷中的最後一卷終於完成了。從2011年我和華章公司的楊福川編輯一起開創這一迄今為止國內Android技術書籍市場上唯一一套兼具廣度和深度的“深入理解Android”系列書籍算起,四個年頭已經過去。在這四年中,本套書籍的作者們和出版社的編輯們共同奮鬥,成果斐然:

·  2011年9月《深入理解Android 卷I》釋出。

·  2012年8月《深入理解Android 卷II》釋出。

·  2013年1月,本系列的第一本專題卷《深入理解Android:Telephony原理剖析與最佳實踐》釋出,作者是楊青平。

·  2014年4月,本系列的第二本專題卷《深入理解Android:Wi-Fi,NFC和GPS卷》釋出。

·  2015年,《深入理解Android 卷III》釋出,作者即是本書的主人公張大偉。

·  2015年及以後,我們還要釋出深入理解Android系列書籍中的WebKit專題卷、自動化測試卷、藍芽專題卷等。

從技術層面來說,本書填補了深入理解Android Framework卷中的一個主要空白,即Android Framework中和UI相關的部分。在一個特別講究顏值的時代,本書分析了Android 4.2中WindowManagerService、ViewRoot、Input系統、StatusBar、Wallpaper等重要“顏值繪製/處理”模組。雖然在寫書的兩年中,Android版本已經從4.2進化到M,但“面雖新,神依在”。所以,我可以很負責任地說,對那些掌握了本書精髓的讀者而言,即使Android未來升級到了X,那也只不過是換了一個馬甲罷了。

展望

我在卷II中曾經詳細闡述過“深入理解Android”這一系列的路線圖(http://blog.csdn.net/innost/article/details/7648869),這裡在展現一下當時的情況。


本套叢書大體分為應用部分、Framework部分、專題部分和核心部分。

1)應用部分。這部分擬以Android原始碼中自帶的那些應用程式為分析目標,充分展示Google在自家SDK平臺上做應用開發的深厚功力。這些應用包括Contacts、Gallery2、Mms、Browser等,它們的分析難度都不可小覷。通過對這些系出名門的應用的分析,我們希望讀者不僅能把握商業級應用程式開發的精髓,而能更精熟地掌握Android應用開發的各種技能。

2)Framework部分。關注Android的框架,包括三本書。

·  卷I:以Native層Framework模組為分析物件。知識點包括init、binder、zygote、jni、Message和Handler、audio系統、surface系統、vold、rild和mediascanner。本書已於2011年9月出版,雖然是基於Android 2.2,讀者如若紮實地掌握並理解了其中的內容,那麼以後再研究2.3或4.0版本中對應的模組,也是輕而易舉之事了。

·  卷II和卷III:以Java層Framework模組為分析物件。卷II基於4.0.1版,包括UI相關服務和Window系統之外的一些重要服務,如PackageManagerService、ActivityManagerService、PowerManagerService、ContentService、ContentProvider等。而的卷III將以輸入系統、WindowManagerService、UI相關服務為主要目標。

Framework部分所包括的這3本書的目的是讓讀者對整個Android系統有較大廣度、一定深度的認識,這有益於讀者能構建一個更為完整的Android系統知識結構。應當指出,這3本書不可能覆蓋Android Framework中的所有知識點。因此,尚需讀者在此基礎上,結合不同需求,進行進一步的深入研究。

3)專題部分。旨在幫助讀者沿著Android平臺中的某一些專業方向,進行深度挖掘,擬規劃如下專題:

·  Telephony專題,涵蓋SystemServer中相關的通訊服務、rild、簡訊、電話等模組。

·  多媒體專題,涵蓋MultiMedia相關的模組,包括Stagefright、OMX等。另外,我們也打算引入開源世界中最流行的一些編解碼引擎和播放引擎作為分析物件。

·  瀏覽器和Webkit專題,該專題難度非常大,但其重要性卻不言而喻。

·  Dalvik虛擬機器專題,該專題希望對Dalvik進行一番深度研究,涉及麵包括Java虛擬機器的實現、Android的一些特殊定製等內容。現在來看,Dalvik已經被ART替換,所以這本書的目標就應該是ART虛擬機器專題了。

·  Android系統安全專題,該專題的目標是,分析Android系統上提供的安全方面的控制機制。另外,Linux平臺上的一些常用安全機制(例如,檔案系統加密等)也是本書所要考慮的。這套安全專題我已經在自己的部落格[①]上寫了部分內容,包括Java Security、裝置加密等。

·  UI/UE設計以及心理學專題,:該專題希望能提供一些心理學方面的指導以及具體的UI/UE設計方面的指南以幫助開發人員開發出更美、更體貼和更方便的應用。

專題部分隱含著的一個極為重要的宗旨:即基於Android,而高於Android。換言之,這些書籍雖都以Android為切入點,但我們更希望讀者學到的知識、掌握的技術卻不侷限於Android平臺。

4) 核心部分。這部分圖書擬以Linux核心為主。雖然這方面的經典教材非常多,但要麼是諸如《Linux核心情景分析》之類的鴻篇巨帙,要麼是類似《Linux核心設計與實現》,內容過於簡潔。另外,現有書籍使用的核心原始碼都已比較陳舊。為此,我們希望能有一本難度適中、知識面較廣、深度適宜的書籍。

今天,正是由於大偉的努力,我們的Framework部分得以完美收官。高興的同時,我們認為前路依然艱辛。在此,我和福川兄再次誠摯邀請國內外有熱情,願分享、有責任心的兄弟姐妹們來一起繼續發揚光大“深入理解Android”這一系列書籍。

還是楊瀾的那句話,“原來我只佩服成功的人,現在我更尊敬那些正在努力的人”。讓我們一起成為被尊敬的人吧!

軼事

我和大偉相知相識的過程還頗有點意思。

那時我們都在中科創達工作,有一次,我們倆要一起重構一個和音訊相關的解碼模組。當時我噼噼啪啪把幾段和多執行緒相關的同步程式碼塊改寫後,引起了大偉的強烈質疑。在質疑(challenge)和爭論(argue)的過程中,我發現大偉思路清晰,技術能力較強,是一個不可多得的好苗子,便有意交往。雖然吵得很激烈,不過最終實踐的結果是這次改寫還是比較成功的,這使得我贏得了大偉的信任。

交手過後,我們便成了好兄弟。2012年夏天,我和大偉被派遣到上海高通公司OnSite。當時我剛完成了卷II的撰寫,同時也在思考很多讀者提出的一個問題,即什麼時候能詳細分析一下AndroidFramework UI部分。古語云“書如其人”,對於我這樣一個對顏值不是很講究的人來說,寫這本書肯定不是最合適的。因為我覺得這邊書的作者需要耐心、細心、同時還需要一定審美觀。在我認識的技術能力較強的兄弟們中,大偉無疑是最適合撰寫本書的人選。

當然,對於一個從未寫過書籍的人而言,寫書這樣的重任最初還是讓大偉覺得緊張,感覺沒有信心。所以,我和大偉一起籤的合同,讓他覺得自己不是孤身作戰。另外,在一些技術難點上,我會編寫一些小例子,讓大偉去完善,並以這些例子為出發點來分析Framework的實現。最後,大偉憑藉自己的的天分和努力,很快就從一個跟隨者變成了這本書的主導者和唯一作者。

在本書的審稿過程中,我很欣慰得發現這本書細節深入、知識全面,是一本誠意之作。在此,我個人非常感謝大偉的努力,這本書了卻了我多年的一樁心願。

我曾經很羨慕那些有戰友之情的士兵們。在和平年代的今天,我覺得我和大偉,福川,楊青平等作者、編輯都曾為了共同一個目標一起努力過,奮鬥過,我們之間的感情應該能夠媲美戰友之情吧。

                                                          鄧凡平

                                                         2015-7-5