-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
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系統源代碼分析

( 簡體 字)
作者:李俊類別:1. -> 程式設計 -> 手機程式 -> Android
譯者:
出版社:中國鐵道出版社Android系統源代碼分析 3dWoo書號: 40819
詢問書籍請說出此書號!

缺書
NT售價: 395

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

譯者序:

前言:

內容簡介:

Android從誕生到現在僅有短短幾年的時間,它憑借其開源開放性、優異的用戶體驗和極為方便的開發方式,贏得了廣大用戶和開發者的青睞,目前已經發展成為市場占有率位居第一的智能手機操作系統。本書主要講解Android系統源代碼的結構和工作機制,完全基于Android主流版本的源代碼結構來編寫全書。本書內容言簡意賅、通俗易懂、講解詳細。本書的內容涉及如何獲取源碼、源碼的結構分析、init解析、應用層結構分析、JNI的機制分析、Android中的系統服務和內存管理、硬件抽象層、Binder機制、多媒體框架、音頻系統、視頻系統和傳感器系統。在編寫的過程中,書中的所有概念和模塊實例完全根據原生態的源碼來編寫。本書定位于有一定基礎的Android程序開發人員,旨在幫助其通過細致分析Android系統源代碼和工作機制,透徹理解Android系統架構,向Android系統開發殿堂及高手邁進。
目錄:

第1章 Android系統介紹
1.1 來到智能手機世界 1
1.1.1 何謂智能手機 1
1.1.2 百家爭鳴 2
1.2 Android的優勢 3
1.2.1 優點一—— 系出名門 3
1.2.2 優點二—— 強大的開發團隊 3
1.2.3 優點三—— 誘人的獎勵機制 4
1.2.4 優點四—— 開源 5
1.3 剖析Android系統架構 5
1.4 五大組件 7
1.4.1 用Activity來表現界面 7
1.4.2 用Intent和Intent Filters實現切換 8
1.4.3 Service服務 8
1.4.4 用Broadcast Intent Receiver發送廣播 9
1.4.5 用Content Provider存儲數據 9
1.5 進程和線程 9
1.5.1 先看進程 9
1.5.2 再看線程 9
1.6 獲取Android源碼 10
1.6.1 在Linux平臺獲取Android源碼 10
1.6.2 在Windows平臺獲取Android源碼 11
1.7 分析Android源碼結構 13
1.8 編譯源碼 18
1.8.1 Ubuntu系統編譯源碼 19
1.8.2 常見錯誤 19
1.8.3 運行Android源碼 20
1.9 編譯Android Kernel 21
1.9.1 獲取Goldfish內核代碼 21
1.9.2 獲取MSM內核代碼 24
1.9.3 獲取OMAP內核代碼 24
1.9.4 編譯Android的Linux內核 24
1.10 Android模擬器(AVD) 26
1.10.1 在Linux環境下運行模擬器 26
1.10.2 模擬器輔助工具——adb 27
1.10.3 在Windows中創建Android模擬器 29
1.10.4 在模擬器上運行Android系統 30
第2章 源碼結構和SDK解析
2.1 Android源碼的目錄結構 32
2.2 目錄結構在系統中的體現 33
2.2.1 應用程序 33
2.2.2 應用程序框架 35
2.2.3 系統服務 35
2.2.4 系統程序庫 38
2.2.5 系統運行庫 41
2.2.6 硬件抽象層 41
2.3 編譯源碼生成SDK 42
2.4 源碼中提供的接口 46
2.4.1 暴露的接口和隱藏的接口 46
2.4.2 開發中如何調用隱藏接口 52
第3章 分析JNI和Media
3.1 JNI基礎 56
3.2 分析Java層的MediaScanner 57
3.2.1 加載JNI庫 57
3.2.2 實現掃描工作 59
3.2.3 讀取并保存信息 60
3.2.4 刪除不是SD卡中的文件信息 62
3.2.5 processDirectory 63
3.2.6 掃描函數scanFile 64
3.2.7 JNI中的異常處理 64
3.3 分析JNI層的MediaScanner 65
3.3.1 將Native對象的指針保存到Java對象 65
3.3.2 創建Native層的MediaScanner對象 66
3.4 Native層的MediaScanner 66
3.4.1 JNI函數的注冊 66
3.4.2 完成注冊工作 68
3.4.3 動態注冊 70
3.4.4 processDirectory 72
3.4.5 client.scanFile 73
3.4.6 添加TAG信息 73
3.4.7 總結函數JNI_OnLoad()與函數JNI_OnUnload()的用途 74
3.4.8 Java與JNI基本數據類型轉換 75
3.4.9 JNIEnv接口 76
3.4.10 JNI中的環境變量 77
3.5 解析android.process.media 78
3.5.1 MediaScannerReceiver 78
3.5.2 MediaScannerService 81
3.5.3 MediaProvider 86
3.6 MediaScanner中的重要函數 99
3.6.1 seekTo 99
3.6.2 doProcessDirectory 103
3.6.3 doScanFile 105
3.6.4 android_media_MediaScanner_processFile 106
3.6.5 processFile 107
3.6.6 endFile 108
3.6.7 handleStringTag 108
3.6.8 fileMatchesExtension 109
3.7 Camera模塊JNI實例分析 110
3.7.1 Java層預覽接口 110
3.7.2 注冊預覽的JNI函數 111
3.7.3 C/C++層的預覽函數 115
第4章 分析init進程
4.1 init基礎 116
4.2 分析入口函數 117
4.3 分析配置文件 120
4.3.1 init.rc簡介 121
4.3.2 分析init.rc的過程 123
4.4 解析Service 127
4.4.1 zygote對應的service action 127
4.4.2 init組織Service 128
4.4.3 解析Service用到的函數 129
4.5 解析on 134
4.5.1 zygote對應的on action 134
4.5.2 init組織on 135
4.5.3 解析on用到的函數 136
4.6 init控制Service 136
4.6.1 啟動zygote 137
4.6.2 啟動Service 137
4.6.3 總結四種啟動Service的方式 142
4.7 控制屬性服務 147
4.7.1 引入屬性 147
4.7.2 初始化屬性服務 150
4.7.3 啟動屬性服務 151
4.7.4 處理設置屬性的請求 155
第5章 深入分析HAL層
5.1 初識HAL層 157
5.1.1 HAL層簡介 158
5.1.2 HAL_legacy和HAL的對比 159
5.2 分析HAL層源碼 159
5.2.1 分析HAL module 159
5.2.2 文件hardware.h 160
5.2.3 文件hardware.c 162
5.3 分析硬件抽象層的加載過程 165
5.4 分析硬件訪問服務 169
5.4.1 定義硬件訪問服務接口 169
5.4.2 實現硬件訪問服務 170
5.5 分析mokoid工程 171
5.5.1 直接調用service方法的實現代碼 172
5.5.2 通過Manager調用service的實現代碼 177
5.6 舉例說明Sensor(傳感器)在HAL層的表現 180
5.6.1 HAL層的Sensor代碼 180
5.6.2 Sensor編程的流程 182
5.7 HAL和系統移植 183
5.7.1 移植各個Android部件的方式 183
5.7.2 輔助工作 183
第6章 分析Android的內存機制
6.1 內存和進程的關系 190
6.1.1 進程管理工具的紛爭 190
6.1.2 Android系統內存設計 191
6.2 分析Android的進程通信機制 192
6.2.1 Android的進程間通信(IPC)機制Binder 192
6.2.2 Service Manager是Binder機制的上下文管理者 193
6.2.3 分析Server和Client獲得Service Manager的過程 211
6.3 分析Android系統匿名共享內存C++調用接口 215
6.3.1 Java程序 217
6.3.2 相關程序 226
6.4 內存優化 229
6.4.1 sp和wp簡析 229
6.4.2 詳解智能指針(android refbase類(sp和wp)) 231
第7章 分析ActivityManagerService
7.1 AMS基礎 233
7.1.1 進程數據類ProcessRecord 234
7.1.2 數據類HistoryRecord 234
7.1.3 類TaskRecord 235
7.1.4 AMS中的一些重要調度相關變量 235
7.2 Activity的調度 237
7.2.1 startActivity()的啟動流程 237
7.2.2 stopActivityLocked()停止Activity 278
第8章 分析Binder和MessageQueue
8.1 分析Binder 285
8.1.1 Client、Server和ServiceManager 285
8.1.2 MediaServer 286
8.1.3 ServiceManager 312
8.1.4 分析MediaPlayerService和Client 316
8.2 初始化Java層Binder框架 323
8.2.1 Binder類的初始化 324
8.2.2 addService實例分析 325
8.3 分析MessageQueue 334
8.3.1 創建MessageQueue 335
8.3.2 提取消息 335
8.3.3 分析函數nativePollOnce 340
第9章 分析SystemServer
9.1 分析SystemServer 350
9.1.1 分析主函數main 350
9.1.2 分析函數init2 353
9.2 分析EntropyService 353
9.3 分析DropBoxManagerService 356
9.3.1 分析DBMS構造函數 356
9.3.2 添加dropbox日志文件 358
9.3.3 DBMS和Settings數據庫 362
9.4 分析DiskStatsService 363
9.5 分析DeviceStorageManagerService 368
9.6 分析SamplingProfilerService 371
9.6.1 分析SamplingProfilerService構造函數 371
9.6.2 分析SamplingProfilerIntegration 372
9.7 分析ClipboardService 382
9.7.1 復制數據到剪貼板 383
9.7.2 從剪貼板粘貼數據 384
9.7.3 CBS中的權限管理 387
第10章 分析WindowManagerService
10.1 WindowManagerService概述 391
10.2 分析計算Activity窗口大小的過程 393
10.2.1 概覽 393
10.2.2 分析Activity計算窗口大小的過程 394
10.3 分析WindowManagerService對窗口的組織方式 419
10.3.1 概述 419
10.3.2 分析操作源碼 420
第11章 分析安裝應用程序的過程
11.1 WindowManagerService概述 439
11.2 分析安裝過程 441
11.2.1 主函數main 441
11.2.2 初始化函數 442
11.2.3 初始化服務 442
11.2.4 調用靜態成員函數 446
11.2.5 創建了ServerThread線程 447
11.2.6 啟動服務 447
11.2.7 創建PackageManagerService服務實例 452
11.2.8 掃描函數scanDirLI 460
11.2.9 歸檔處理 464
11.2.10 解析application標簽 475
11.2.11 保存解析后的程序信息 477
第12章 分析核心框架系統
12.1 分析音頻系統 479
12.1.1 Audio系統的層次介紹 479
12.1.2 Media庫中的Audio框架 481
12.1.3 本地代碼 488
12.1.4 JNI代碼 491
12.1.5 Java代碼 492
12.2 視頻輸出系統 492
12.2.1 Overlay系統的基本層次結構 492
12.2.2 Overlay系統硬件抽象層的接口 494
12.2.3 實現硬件抽象層 496
12.2.4 實現接口 497
12.3 分析OpenMax多媒體框架 498
12.3.1 分析OpenMax IL層的接口 499
12.3.2 OpenMax適配層 504
12.4 分析多媒體插件框架 506
12.4.1 基本層次結構 507
12.4.2 分析庫libopencorecommon.so的結構 508
12.4.3 分析庫libopencoreplayer.so的結構 509
12.4.4 分析庫libopencoreauthor.so的結構 510
12.4.5 其他的庫 511
12.4.6 OpenCore OSCL 511
12.4.7 實現OpenCore中的OpenMax部分 513
12.5 分析Camera照相機系統 525
12.5.1 基本層次結構 525
12.5.2 分析V4L2驅動程序 527
12.5.3 硬件抽象層 534
12.5.4 實現Camera系統的硬件抽象層 535
12.6 分析傳感器系統 542
12.6.1 基本層次結構 542
12.6.2 分析硬件抽象層 544
12.6.3 實現上層部分 545
序: