新書上市《深入解析Android 5.0系統》




本書在京東,噹噹,亞馬遜上都有出售。

本書的QQ交流羣:216840480


【本書簡介】

《深入解析Android 5.0系統》詳細剖析了最新Android 5.0 系統主要框架的原理和具體實現。本書共24章,覆蓋了Android 5.0 系統中、下層重要的模塊,對於每個模塊都詳細介紹了它們的架構、原理及代碼實現等各個方面,儘量讓讀者知其然,又知其所以然,達到學以致用的目的。主要內容爲:
Android Build系統核心、Android的Bionic、系統調用的實現方法、Android的Binder、Binder應用層的核心類、Android 的JNI、Android的同步和消息機制、進程間的消息傳遞、Android的Init進程、Android的Zygote進程、Android的資源管理、Android的SystemServer進程、Android的應用管理、Android的組件管理、Android的多用戶模式、Android的圖形顯示系統、Android的窗口系統、Android 的輸入管理、Android的電源管理、Android的存儲系統、Android的網絡管理框架、Android的音頻系統、Android的SELinux模塊、Dalvik和ART虛擬機、Android的Recovery模塊、Android的調試方法、內存泄露的分析、Android的自動化測試等系統的核心知識。
在書中儘可能詳細地給出了代碼的註釋、各種屬性和常量的解釋,以及各種系統中使用的文件格式的介紹,希望讀者能通過本書,獲得對Android 5.0系統進行二次開發的能力,本書是進行系統開發人員的案頭必備書。
《深入解析Android 5.0系統》面向的讀者主要是進行系統開發的工程師,包括應用開發工程師、ROM開發工程師和各種使用Android作爲開發平臺的TV和可穿戴式設備(Wear)的開發工程師。本書也可以作爲大專院校相關專業師生的學習用書及培訓學校教材。

 

【本書目錄】

 

導讀 1
第1章 建立系統開發環境 3
1.1 安裝操作系統 3
1.1.1 安裝方式的選擇 3
1.1.2 下載和安裝Ubuntu 4
1.1.3 使用Ubuntu遇到的問題 4
1.2 安裝開發包 5
1.2.1 安裝JDK1.6 5
1.2.2 安裝OpenJDK1.7 6
1.2.3 安裝編譯需要的開發包 6
1.3 安裝一些有用的工具 6
1.3.1 安裝Android SDK 7
1.3.2 安裝Android Studio 7
1.3.3 安裝Source Insight 7
1.3.4 安裝比較工具Meld 7
1.4 下載源碼 8
1.4.1 Git and Repo簡介 8
1.4.2 源碼版本歷史 9
1.4.3 下載Android 源碼 10
1.4.4 下載Kernel 源碼 11
第2章 Android的Build系統 15
2.1 Android Build系統核心 15
2.1.1 編譯環境的建立 16
2.1.2 Build相關的環境變量 20
2.1.3 Build系統的層次關係 21
2.1.4 分析main.mk文件 24
2.1.5 Build系統的編譯目標介紹 28
2.1.6 分析config.mk文件 29
2.1.7 分析product_config.mk文件 32
2.1.8 Android5.0中的64位編譯 35
2.2 Android的產品配置文件 36
2.2.1 分析hammerhead的配置文件 36
2.2.2 編譯類型eng,user和userdebug 40
2.2.3 產品的Image文件 41
2.2.4 如何加快編譯速度 43
2.2.5 如何編譯Android的模擬器 44
2.3 編譯Android的模塊 44
2.3.1 模塊編譯變量簡介 45
2.3.2 常用模塊定義實例 46
2.3.3 預編譯模塊的目標定義 48
2.3.4 常用“LOCAL_” 變量 50
2.4 Android中的簽名 52
2.4.1 Android應用簽名方法 53
2.4.2 Android系統簽名介紹 55
2.4.3 Android簽名漏洞分析 56
第3章 Android的Bionic 59
3.1 Bionic簡介 59
3.1.1 Bionic的特性 59
3.1.2 Bionic中的模塊簡介 62
3.2 Bionic C庫中的系統調用 64
3.2.1 系統調用簡介 64
3.2.2 系統調用的實現方法 65
3.3 Bionic中的內存管理函數 66
3.3.1 系統調用brk和mmap 66
3.3.2 dlmalloc簡介 67
3.3.3 dlmalloc函數用法指南 69
3.4 管道 73
3.4.1 匿名管道PIPE和命名管道FIFO 73
3.4.2 匿名管道的使用方法 74
3.5 Bionic中的線程管理函數 74
3.5.1 Bionic線程函數的特性 75
3.5.2 創建線程和線程的屬性 75
3.5.3 退出線程的方法 77
3.5.4 線程本地存儲TLS 79
3.5.5 線程的互斥量(Mutex)函數 79
3.5.6 線程的條件量(Condition)函數 81
3.6 Futex同步機制 82
3.6.1 Futex的系統調用 82
3.6.2 Futex的用戶態操作 83
3.6.3 Mutex類使用Futex實現同步 84
3.7 Android的 Log模塊 85
3.7.1 Android Log 系統的架構 85
3.7.2 Log系統的接口和用法 87
3.7.3 Log系統的實現分析 89
3.8 可執行文件格式分析 93
3.8.1 ELF格式簡介 93
3.8.2 ELF文件頭格式 94
3.8.3 程序頭部表 96
3.8.4 DYNAMIC段 98
3.8.5 函數的重定位過程 101
3.9 Bionic中的Linker模塊 104
3.9.1 可執行程序的裝載 105
3.9.2 可執行程序的初始化 106
3.9.3 Linker裝載動態庫 108
3.10 Ptrace和Hook API 113
3.10.1 ptrace函數簡介 113
3.10.2 Hook API的原理 114
3.10.3 利用ptrace實現Hook API 115
第4章 Android的Binder 121
4.1 Binder簡介 121
4.1.1 Binder對象定義 122
4.1.2 Binder的架構 122
4.1.3 組件Service和匿名Binder服務 124
4.1.4 Binder的層次 124
4.2 如何使用Binder 125
4.2.1 使用Binder服務 125
4.2.2 Binder的混合調用 126
4.2.3 用Jave開發Binder服務 127
4.2.4 用C++開發Binder服務 128
4.3 Binder應用層的核心類 130
4.3.1 IInterface中的兩個宏 131
4.3.2 Binder核心類的關係 132
4.3.3 函數asInterface的奧祕 134
4.3.4 Binder的“死亡通知” 135
4.3.5 Jave層的Binder類 136
4.4 Binder的實現原理 140
4.4.1 Binder的線程模型 141
4.4.2 Binder對象的傳遞 145
4.4.3 分析IPCThreadState類 149
4.5 Binder驅動 154
4.5.1 應用層和驅動的消息協議 154
4.5.2 Binder驅動分析 158
4.5.3 Binder的內存共享機制 160
4.5.4 驅動的ioctl操作 161
4.5.5 Binder調用過程 163
4.5.6 處理傳遞的Binder對象 169
4.6 ServiceManager的作用 172
4.6.1 ServiceManager的架構 172
4.6.2 ServiceManger提供的服務 175
4.7 匿名共享內存ashmem 179
4.7.1 ashmem的作用和用法 179
4.7.2 ashmem驅動的實現原理 181
4.7.3 ashemem驅動的代碼分析 182
4.7.4 進程間傳遞文件描述符 186
第5章 Android 的JNI 189
5.1 JNI的作用 189
5.2 JNI用法介紹 190

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