-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

深入解析Android 5.0系統

( 簡體 字)
作者:劉超類別:1. -> 程式設計 -> 手機程式 -> Android
譯者:
出版社:人民郵電出版社深入解析Android 5.0系統 3dWoo書號: 41344
詢問書籍請說出此書號!

缺書
NT售價: 495

出版日:4/1/2015
頁數:708
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787115384560
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

內容簡介:

  《深入解析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章 建立Android系統開發環境 1
1.1 安裝操作系統 1
1.1.1 安裝方式的選擇 1
1.1.2 下載和安裝Ubuntu 1
1.1.3 使用Ubuntu遇到的問題 2
1.2 安裝開發包 3
1.2.1 安裝JDK 1.6 3
1.2.2 安裝OpenJDK 1.7 4
1.2.3 安裝編譯需要的開發包 4
1.3 安裝一些有用的工具 4
1.3.1 安裝Android SDK 4
1.3.2 安裝Android Studio 4
1.3.3 安裝Source Insight 5
1.3.4 安裝比較工具Meld 5
1.4 下載源碼 5
1.4.1 Git and Repo簡介 5
1.4.2 源碼版本歷史 6
1.4.3 下載Android源碼 7
1.4.4 下載Kernel源碼 8
第2章 Android的編譯環境——
Build系統 10
2.1 Android Build系統核心 10
2.1.1 編譯環境的建立 11
2.1.2 Build相關的環境變量 14
2.1.3 Build系統的層次關系 15
2.1.4 分析main.mk文件 17
2.1.5 Build系統的編譯目標
介紹 20
2.1.6 分析config.mk文件 22
2.1.7 分析product_config.mk
文件 24
2.1.8 Android 5.0中的64位
編譯 26
2.2 Android的產品配置文件 27
2.2.1 分析hammerhead的配置
文件 27
2.2.2 編譯類型eng、user和
userdebug 31
2.2.3 產品的Image文件 32
2.2.4 如何加快編譯速度 33
2.2.5 如何編譯Android的
模擬器 34
2.3 編譯Android的模塊 34
2.3.1 模塊編譯變量簡介 35
2.3.2 常用模塊定義實例 36
2.3.3 預編譯模塊的目標定義 37
2.3.4 常用“LOCAL_”變量 39
2.4 Android中的簽名 40
2.4.1 Android應用簽名方法 41
2.4.2 Android系統簽名介紹 43
2.4.3 Android簽名漏洞分析 44
第3章 連接Android和Linu內核的
橋梁——Android的Bionic 46
3.1 Bionic簡介 46
3.1.1 Bionic的特性 46
3.1.2 Bionic中的模塊簡介 49
3.2 Bionic C庫中的系統調用 50
3.2.1 系統調用簡介 50
3.2.2 系統調用的實現方法 51
3.3 Bionic中的內存管理函數 52
3.3.1 系統調用brk和mmap 52
3.3.2 內存分配器——dlmalloc
簡介 53
3.3.3 dlmalloc函數用法指南 54
3.4 管道 57
3.4.1 匿名管道PIPE和命名
管道FIFO 57
3.4.2 匿名管道的使用方法 58
3.5 Bionic中的線程管理函數 59
3.5.1 Bionic線程函數的特性 59
3.5.2 創建線程和線程的屬性 59
3.5.3 退出線程的方法 61
3.5.4 線程本地存儲TLS 62
3.5.5 線程的互斥量(Mutex)
函數 63
3.5.6 線程的條件量(Condition)
函數 65
3.6 Futex同步機制 66
3.6.1 Futex的系統調用 66
3.6.2 Futex的用戶態操作 67
3.6.3 Mutex類使用Futex
實現同步 68
3.7 Android的 Log模塊 68
3.7.1 Android Log系統的架構 69
3.7.2 Log系統的接口和用法 70
3.7.3 Log系統的實現分析 71
3.8 可執行文件格式分析 75
3.8.1 ELF格式簡介 75
3.8.2 ELF文件頭格式 76
3.8.3 程序頭部表 77
3.8.4 與重定位相關的“節區”的
信息——DYNAMIC段 79
3.8.5 函數的重定位過程 81
3.9 Bionic中的Linker模塊 84
3.9.1 可執行程序的裝載 84
3.9.2 可執行程序的初始化 85
3.9.3 Linker裝載動態庫 87
3.10 調試器——Ptrace和Hook API 91
3.10.1 ptrace函數簡介 91
3.10.2 Hook API的原理 92
3.10.3 利用ptrace實現
Hook API 93
第4章 進程間通信——Android
的Binder 98
4.1 Binder簡介 98
4.1.1 Binder對象定義 98
4.1.2 Binder的架構 99
4.1.3 組件Service和匿名
Binder服務 100
4.1.4 Binder的層次 101
4.2 如何使用Binder 102
4.2.1 使用Binder服務 102
4.2.2 Binder的混合調用 102
4.2.3 用Jave開發Binder服務 103
4.2.4 用C++開發Binder服務 104
4.3 Binder應用層的核心類 106
4.3.1 IInterface中的兩個宏 106
4.3.2 Binder核心類的關系 107
4.3.3 函數asInterface的奧秘 109
4.3.4 Binder的“死亡通知” 110
4.3.5 Jave層的Binder類 111
4.4 Binder的實現原理 115
4.4.1 Binder的線程模型 115
4.4.2 Binder對象的傳遞 119
4.4.3 分析IPCThreadState類 122
4.5 Binder驅動 126
4.5.1 應用層和驅動的消息
協議 126
4.5.2 Binder驅動分析 129
4.5.3 Binder的內存共享機制 130
4.5.4 驅動的ioctl操作 131
4.5.5 Binder調用過程 133
4.5.6 處理傳遞的Binder對象 138
4.6 解析名稱的模塊——
ServiceManager的作用 140
4.6.1 ServiceManager的架構 141
4.6.2 ServiceManger提供
的服務 143
4.7 匿名共享內存ashmem 146
4.7.1 ashmem的作用和用法 146
4.7.2 ashmem驅動的實現原理 148
4.7.3 ashemem驅動的代碼
分析 149
4.7.4 進程間傳遞文件描述符 152
第5章 連接Java和C/C++層的
關鍵——Android的JNI 154
5.1 JNI的作用 154
5.2 JNI用法介紹 154
5.2.1 從Java到C/C++ 154
5.2.2 從C/C++到Java的調用 158
5.3 JNI環境 160
5.3.1 結構體JNIEnv 160
5.3.2 JNIEnv的創建和初始化 162
5.3.3 JNI中的異常處理 163
5.3.4 JNI中的引用 164
5.3.5 指明錯誤位置——
“CheckJNI”的作用 165
5.4 ART帶來的JNI變化 165
5.4.1 垃圾回收的影響 165
5.4.2 錯誤處理的變化 166
5.4.3 堆棧可能引發的問題 166
第6章 Android的同步和消息機制 167
6.1 原子操作 167
6.1.1 Android的原子操作函數 167
6.1.2 原子操作的實現原理 168
6.1.3 內存屏障和編譯屏障 169
6.2 Android native層的同步方法 171
6.2.1 互斥體Mutex和自動鎖
Autolock 171
6.2.2 解決線程同步——條件
類Condition 173
6.3 Android Java層的同步機制 174
6.3.1 同步關鍵字synchronized 174
6.3.2 Object類在同步中
的作用 175
6.4 Android的消息機制 176
6.4.1 消息模型 177
6.4.2 理解Looper類 178
6.4.3 理解Handler類 180
6.4.4 消息的同步——Message
類的setAsynchronous()
方法 181
6.4.5 分析MessageQueue類 182
6.5 進程間的消息傳遞 186
6.5.1 理解Messenger類 187
6.5.2 建立通信通道——
AsyncChannel類的作用 187
第7章 第一個用戶進程——Android
的Init進程 192
7.1 Init進程的初始化過程 194
7.1.1 main函數的流程 194
7.1.2 啟動
序: