深入理解Android︰卷I

深入理解Android︰卷I
定價:414
NT $ 360
  • 作者:鄧凡平
  • 出版社:機械工業出版社
  • 出版日期:2011-09-01
  • 語言:簡體中文
  • ISBN10:7111357620
  • ISBN13:9787111357629
  • 裝訂:平裝 / 488頁 / 普通級 / 單色印刷 / 初版
 

內容簡介

《深入理解Android:卷I》是一本以情景方式對Android的源代碼進行深入分析的書。內容廣泛,以對Framework層的分析為主,兼顧Native層和Application層;分析深入,每一部分源代碼的分析都力求透徹;針對性強,注重實際應用開發需求,書中所涵蓋的知識點都是Android應用開發者和系統開發者需要重點掌握的。

全書共10章,第1章介紹了閱讀本書所需要做的準備工作,主要包括對Android系統架構和源碼閱讀方法的介紹;第2章通過對Android系統中的MediaScanner進行分析,詳細講解了Android中十分重要的JNI技術;第3章分析了init進程,揭示了通過解析init.rc來啟動Zygote以及屬性服務的工作原理;第4章分析了Zygote、SystemServer等進程的工作機制,同時還討論了Android的啟動速度、虛擬機HeapSize的大小調整、Watchdog工作原理等問題;第5章講解了Android系統中常用的類,包括sp、wp、RefBase、Thread等類,同步類,以及Java中的Handler類和Looper類,掌握這些類的知識後方能在後續的代碼分析中做到游刃有余;第6章以MediaServer為切入點,對Android中極為重要的Binder進行了較為全面的分析,深刻揭示了其本質。第7章對Audio系統進行了深入的分析,尤其是AudioTrack、AudioFlinger和AudioPolicyService等的工作原理。第8章深入講解了Surface系統的實現原理,分析了Surface與Activity之間以及Surface與SurfaceFlinger之間的關系、SurfaceFlinger的工作原理、Surface系統中的幀數據傳輸以及LayerBuffer的工作流程。第9章對Vold和Rild的原理和機制進行了深入的分析,同時還探討了Phone設計優化的問題;第10章分析了多媒體系統中MediaScanner的工作原理。

本書適合有一定基礎的Android應用開發工程師和系統工程師閱讀。通過對本書的學習,大家將能更深刻地理解Android系統,從而自如應對實際開發中遇到的難題。
 

目錄

第1章 閱讀前的準備工作
1.1 系統架構
1.1.1 Android系統架構
1.1.2 本書的架構
1.2 搭建開發環境
1.2.1 下載源碼
1.2.2 編譯源碼
1.3 工具介紹
1.3.1 Source Insight介紹
1.3.3 Busybox的使用
1.4 本章小結
第2章 深入理解JNI
2.1 JNI概述
2.2 學習JNI的實例︰MediaScanner
2.3 Java層的MediaScanner分析
2.3.1 加載JNI庫
2.3.2 Java的native函數和總結
2.4 JNI層MediaScanner的分析
2.4.1 注冊JNI函數
2.4.2 數據類型轉換
2.4.3 JNIEnv介紹
2.4.4 通過JNIEnv操作jobject
2.4.5 jstring介紹
2.4.6 JNI類型簽名介紹
2.4.7 垃圾回收
2.4.8 JNI中的異常處理
2.5 本章小結
第3章 深入理解init
3.1 概述
3.2 init分析
3.2.1 解析配置文件
3.2.2 解析service
3.2.3 init控制service
3.2.4 屬性服務
3.3 本章小結
第4章 深入理解zygote
4.1 概述
4.2 zygote分析
4.2.1 AppRuntime分析
4.2.2 Welcome to Java World
4.2.3 關于zygote的總結
4.3 SystemServer分析
4.3.1 SystemServer的誕生
4.3.2 SystemServer的重要使命
4.3.3 關于 SystemServer的總結
4.4 zygote的分裂
4.4.1 ActivityManagerService發送請求
4.4.2 有求必應之響應請求
4.4.3 關于zygote分裂的總結
4.5 拓展思考
4.5.1 虛擬機heapsize的限制
4.5.2 開機速度優化
4.5.3 Watchdog分析
4.6 本章小結
第5章 深入理解常見類
5.1 概述
5.2 以“三板斧”揭秘RefBase、sp和wp
5.2.1 第一板斧——初識影子對象
5.2.2 第二板斧——由弱生強
5.2.3 第三板斧——破解生死魔咒
5.2.4 輕量級的引用計數控制類LightRefBase
5.2.5 題外話—三板斧的來歷
5.3 Thread類及常用同步類分析
5.3.1 一個變量引發的思考
5.3.2 常用同步類
5.4 Looper和Handler類分析
5.4.1 Looper類分析
5.4.2 Handler分析
5.4.3 Looper和Handler的同步關系
5.4.4 HandlerThread介紹
5.5 本章小結
第6章 深入理解Binder
6.1 概述
6.2 庖丁解MediaServer
6.2.1 MediaServer的入口函數
6.2.2 獨一無二的ProcessState
6.2.3 時空穿越魔術—defaultServiceManager
6.2.4 注冊MediaPlayerService
6.2.5 秋風掃落葉—StartThread Pool和join Thread Pool分析
6.2.6 你徹底明白了嗎
6.3 服務總管ServiceManager
6.3.1 ServiceManager的原理
6.3.2 服務的注冊
6.3.3 ServiceManager存在的意義
6.4 MediaPlayerService和它的Client
6.4.1 查詢ServiceManager
6.4.2 子承父業
6.5 拓展思考
6.5.1 Binder和線程的關系
6.5.2 有人情味的訃告
6.5.3 匿名Service
6.6 學以致用
6.6.1 純Native的Service
6.6.2 扶得起的“阿斗”(aidl)
6.7 本章小結
第7章 深入理解Audio系統
7.1 概述
7.2 AudioTrack的破解
7.2.1 用例介紹
7.2.2 AudioTrack(Java空間)分析
7.2.3 AudioTrack(Native空間)分析
7.2.4 關于AudioTrack的總結
7.3 AudioFlinger的破解
7.3.1 AudioFlinger的誕生
7.3.2 通過流程分析AudioFlinger
7.3.3 audio_track_cblk_t分析
7.3.4 關于AudioFlinger的總結
7.4 AudioPolicyService的破解
7.4.1 AudioPolicyService的創建
7.4.2 重回AudioTrack
7.4.3 聲音路由切換實例分析
7.4.4 關于AudioPolicy的總結
7.5 拓展思考
7.5.1 DuplicatingThread破解
7.5.2 題外話
7.6 本章小結
第8章 深入理解Surface系統
8.1 概述
8.2 一個Activity的顯示
8.2.1 Activity的創建
8.2.2 Activity的UI繪制
8.2.3 關于Activity的總結
8.3 初識Surface
8.3.1 和Surface有關的流程總結
8.3.2 Surface之乾坤大挪移
8.3.3 乾坤大挪移的JNI層分析
8.3.4 Surface和畫圖
8.3.5 初識Surface小結
8.4 深入分析Surface
8.4.1 與Surface相關的基礎知識介紹
8.4.2 SurfaceComposerClient分析
8.4.3 SurfaceControl分析
8.4.4 writeToParcel和Surface對象的創建
8.4.5 lockCanvas和unlockCanvasAndPost分析
8.4.6 GraphicBuffer介紹
8.4.7 深入分析Surface的總結
8.5 SurfaceFlinger分析
8.5.1 SurfaceFlinger的誕生
8.5.2 SF工作線程分析
8.5.3 Transaction分析
8.5.4 關于SurfaceFlinger的總結
8.6 拓展思考
8.6.1 Surface系統的CB對象分析
8.6.2 ViewRoot的你問我答
8.6.3 LayerBuffer分析
8.7 本章小結
第9章 深入理解Vold和Rild
9.1 概述
9.2 Vold的原理與機制分析
9.2.1 Netlink和Uevent介紹
9.2.2 初識Vold
9.2.3 NetlinkManager模塊分析
9.2.4 VolumeManager模塊分析
9.2.5 CommandListener模塊分析
9.2.6 Vold實例分析
9.2.7 關于Vold的總結
9.3 Rild的原理與機制分析
9.3.1 初識Rild
9.3.2 RIL_startEventLoop分析
9.3.3 RIL_Init分析
9.3.4 RIL_register分析
9.3.5 關于Rild main函數的總結
9.3.6 Rild實例分析
9.3.7 關于Rild的總結
9.4 拓展思考
9.4.1 嵌入式系統的存儲知識介紹
9.4.2 Rild和Phone的改進探討
9.5 本章小結
第10章 深入理解MediaScanner
10.1 概述
10.2 android.process.media分析
10.2.1 MSR模塊分析
10.2.2 MSS模塊分析
10.2.3 android.process.media媒體掃描工作的流程總結
10.3 MediaScanner分析
10.3.1 Java層分析
10.3.2 JNI層分析
10.3.3 PVMediaScanner分析
10.3.4 關于MediaScanner的總結
10.4 拓展思考
10.4.1 MediaScannerConnection介紹
10.4.2 我問你答
10.5 本章小結
網路書店 類別 折扣 價格
  1. 新書
    87
    $360