深入理解 Android 卷I - 關於

原文地址:http://wiki.jikexueyuan.com/project/deep-android-v1/

深入理解 Android 卷I

全書一共 10 章,其中一些重要章節中還設置了“拓展思考”部分。這十章的主要內容是:

  • 第 1 章介紹了閱讀本書所需要做的一些準備工作,包括對 Android 整個系統架構的認識,以及 Android 開發環境和源碼閱讀環境的搭建等。
  • 第 2 章通過 Android 源碼中的一處實例深入地介紹了 JNI 技術。
  • 第 3 章圍繞 init 進程,介紹瞭如何解析 init.rc 以啓動 Zygote 以及屬性服務(property service)工作的原理。
  • 第 4 章剖析了 Zygote 以及 system_server 進程的工作原理。本章的拓展思考部分,討論了Andorid啓動速度、虛擬機 heapsize 大小調整問題以及“看門狗”的工作原理。
  • 第 5 章講解了 Android 源碼中常用的類,如sp、wp、RefBase、Thread 類、同步類、Java 中的 Handler 類以及 Looper 類。這些類是 Android 中常用和基本的類,只有掌握這些類的知識,後續的代碼分析纔可能做到遊刃有餘。
  • 第 6 章以 MediaServer 爲切入點,對 Binder 進行了較爲全面的分析。本章拓展思考部分,討論了和 Binder 有關的三個問題,它們分別是 Binder 和線程的關係、死亡通知以及匿名 Service。筆者希望,讀者通過本章學習,能更深入認識 Binder 的本質。
  • 第 7 章闡述了 Audio 系統中三位重要成員AudioTrack、AudioFlinger 和 AudioPolicyService 的工作原理。本章拓展思考部分,分析了 AudioFlinger 中DuplicatingThread 的工作原理,並且和讀者一道探討了單元測試、ALSA、Desktop check 等問題。通過對本章的學習,相信讀者會對 Audio 系統有更深的理解。
  • 第 8 章以 Surface 系統爲主,分析了 Activity 和 Surface 的關係、Surface 和SurfaceFlinger 的關係以及 SurfaceFlinger 的工作原理。本章的拓展思考部分,分析了 Surface 系統中數據傳輸控制對象的工作原理、有關 ViewRoot 的一些疑問,最後介紹了 LayerBuffer 的工作流程。這是全書中難度較大的一章,讀者反覆閱讀和思考,或許能進一步深入理解 Surface 系統。
  • 第 9 章分析了 Vold 和 Rild、其中 Vold 負責 Android 平臺中外部存儲設備的管理,而 Rild 負責與射頻通信有關的工作。本章的拓展思考部分,介紹了與嵌入式系統中存儲有關的知識,還探討了 Rild 以及 Phone 設計優化方面的問題。
  • 第 10 章分析了多媒體系統中 MediaScanner 的工作原理。在本章的拓展思考部分中,筆者提出了幾個問題,旨在激發讀者對 Android 深入思考和學習的慾望。

本書面向的讀者

  • Android 應用開發工程師:剛接觸 Android 系統的讀者朋友,本書中關於 Binder,sp 和 wp、Handler 及 Looper 等常用類的分析,或許能幫助你迅速適應 Android 平臺上的開發工作。
  • Android 系統開發工程師:系統開發工程師常常需要深入理解系統的運轉過程,而本書所涉及到的內容,可能正是他們在工作和學習中最想了解的。那些對具體模塊(如 Audio 系統、Surface 系統)感興趣的讀者,也可以單刀直入,閱讀相關章節的內容。 這裏有必要提醒,要閱讀此書,應具有與 C++ 相關的基本知識,因爲本書的大部分內容都集中在了 Native層。

版權聲明

本系列書籍或文章的作者是鄧凡平。內容託管在極客學院 Wiki 平臺上發佈。

本文爲作者原創文章,未經作者允許不得轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章