Android技術內幕

Android技術內幕,機械工業出版社出版。本書是國內首本系統對Android的原始碼進行深入分析的著作。

基本信息

基本信息

原書名:Android Internals: System
作者: 楊豐盛 [作譯者介紹]
出版社:機械工業出版社
ISBN:9787111337270
上架時間:2011-6-10
出版日期:2011 年6月
開本:16開
頁碼:532
版次:1-1

內容簡介

《Android技術內幕:系統卷》是國內首本系統對Android的原始碼進行深入分析的著作。全書將Android系統從構架上依次分為套用層、套用框架層、系統運行庫層、硬體抽象層和Linux核心層等5個層次,旨在通過對Android系統原始碼的全面分析來幫助開發者加深對Android系統架構設計和實現原理的認識,從而幫助他們解決開發中遇到的更加複雜的問題。
全書分為兩卷,系統卷主要分析了Linux核心層、硬體抽象層和系統運行庫層的各個模組的底層原理和實現細節;套用卷主要分析了套用層和套用框架層的各個模組的底層原理和實現細節。
具體而言,系統卷第1章首先從巨觀上介紹了Android系統的架構以及各個層次之間的關係,然後介紹了如何獲取Android原始碼並搭建Android原始碼開發環境和閱讀環境的方法;第2章有針對性地剖析了Android的核心機制和結構,以及Android對Linux核心的改動和增強;第3章分析了Binder的架構和工作機制,以及Binder驅動的實現原理;第4章分析了Android電源管理模組的機制與實現;第5章全面地剖析了Android硬體設備驅動(顯示、視頻、音頻、MTD、Event、藍牙、WLAN等)的工作原理和實現,掌握這部分內容即可修改和編寫基於Android的設備驅動程式;第6章深刻闡述了Android原生庫的原理及實現,涉及系統C庫、功能庫、擴展庫和原生的Server等重要內容;第7章系統地講解了硬體抽象層的原理與實現,掌握這部分內容即可編寫適合特定硬體設備驅動的抽象層接口;第8章和第9章是對系統運行庫層的分析,主要講解了Dalvik虛擬機的架構、原理與實現,以及Android的核心庫相關的知識,掌握這部分內容即可完成對Android運行庫的移植和修改。
本書適合所有的高級Android套用開發工程師、Android系統開發工程師、Android移植工程師、Android系統架構師和所有對Android源碼實現感興趣的讀者。

目錄

前言
第1章 準備工作 /1
1.1 深入認識android /2
1.1.1 android的系統構架 /2
1.1.2 android的初始化流程 /5
1.1.3 各個層次之間的相互關係 /8
1.1.4 android系統開發(移植)和套用開發 /11
1.2 獲取和編譯android的源碼 /13
1.2.1 環境配置 /13
1.2.2 獲取android源碼 /14
1.2.3 編譯android的源碼及其工具包 /16
1.2.4 運行android系統 /21
1.3 開發環境搭建 /23
1.3.1 套用開發環境搭建 /23
1.3.2 源碼開發環境搭建 /26
1.4 android源碼結構 /32
1.5 小結 /33
第2章 android的核心機制和結構剖析 /34
2.1 linux與android的關係 /35
.2.1.1 為什麼會選擇linux /35
2.1.2 android不是linux /35
2.2 android對linux核心的改動 /37
2.2.1 goldfish /37
2.2.2 yaffs2 /38
2.2.3 藍牙 /39
2.2.4 調度器(scheduler)/39
2.2.5 android新增的驅動 /40
2.2.6 電源管理 /41
2.2.7 雜項 /41
2.3 android對linux核心的增強 /42
2.3.1 alarm(硬體時鐘)/43
2.3.2 ashmem(匿名記憶體共享)/46
2.3.3 low memory killer(低記憶體管理)/52
2.3.4 logger(日誌設備)/56
2.3.5 android pmem /65
2.3.6 switch /79
2.3.7 timed gpio /88
2.3.8 android ram console /94
2.4 小結 /99
第3章 android的ipc機制--binder /100
3.1 binder概述 /101
3.1.1 為什麼選擇binder /101
3.1.2 初識binder /102
3.2 binder驅動的原理和實現 /102
3.2.1 binder驅動的原理 /102
3.2.2 binder驅動的實現 /103
3.3 binder的構架與實現 /132
3.3.1 binder的系統構架 /132
3.3.2 binder的機制和原理 /133
3.4 小結 /150
第4章 電源管理 /151
4.1 電源管理概述 /152
4.2 電源管理結構 /152
4.3 android的電源管理機制 /153
4.4 android電源管理機制的實現 /154
4.5 小結 /187
第5章 驅動的工作原理及實現機制 /188
5.1 顯示驅動(FrameBuffer)/189
5.1.1 framebuffer的工作原理 /189
5.1.2 framebuffer的構架 /190
5.1.3 framebuffer驅動的實現機制 /190
5.2 視頻驅動V4L和v4l2)/201
5.2.1 v4l2介紹 /201
5.2.2 v4l2的原理和構架 /201
5.2.3 v4l2的實現 /202
5.3 音頻驅動(oss和alsa)/208
5.3.1 oss與alsa介紹 /208
5.3.2 oss的構架與實現 /209
5.3.3 alsa的構架與實現 /213
5.4 mtd驅動 /214
5.4.1 mtd驅動的功能 /214
5.4.2 mtd驅動的構架 /215
5.4.3 mtd驅動的原理及實現 /215
5.5 event輸入設備驅動 /223
5.5.1 input的系統構架 /223
5.5.2 event輸入驅動的構架 /224
5.5.3 event輸入驅動的原理 /224
5.5.4 event輸入驅動的實現 /225
5.6 藍牙驅動(bluetooth)/235
5.6.1 bluetooth驅動的構架 /235
5.6.2 BlueZ的原理及實現 /237
5.7 wlan驅動(wi-fi)/244
5.7.1 wlan構架 /244
5.7.2 wi-fi驅動的實現原理 /245
5.8 小結 /245
第6章 原生庫的原理及實現 /246
6.1 系統c庫(bionic libc)/247
6.1.1 bionic libc功能概述 /247
6.1.2 bionic libc實現原理 /248
6.2 功能庫 /258
6.2.1 webkit構架與實現 /258
6.2.2 多媒體框架與實現 /275
6.2.3 android sqlite框架及原理 /285
6.3 擴展庫 /289
6.3.1 skia底層庫分析 /289
6.3.2 opengl底層庫分析 /299
6.3.3 android-openssl實現及運用 /306
6.3.4 freetype及font engine manager /317
6.3.5 freetype結構體系和渲染流程 /317
6.4 原生服務 /328
6.4.1 audioflinger實現 /328
6.4.2 surfaceflinger實現 /341
6.5 小結 /353
第7章 硬體抽象層的原理與實現 /354
7.1 硬體抽象層的實現原理 /355
7.1.1 android hal構架 /355
7.1.2 android hal的實現 /357
7.2 android overlay構架與實現 /361
7.2.1 android overlay系統構架 /361
7.2.2 overlay hal框架與實現 /362
7.2.3 overlay與surfacefinger /369
7.3 android camera 構架與實現 /375
7.3.1 android camera系統構架 /375
7.3.2 camera hal框架與實現 /377
7.3.3 camera本地實現 /385
7.4 android audio hal實現 /394
7.4.1 audio hal框架 /395
7.4.2 android默認的audio hal實現 /398
7.4.3 dump功能的audio hal實現 /400
7.4.4 基於a2dp的藍牙音頻設備hal實現 /402
7.4.5 模擬器上的audio hal實現 /403
7.5 android RIL實現 /404
7.5.1 android ril構架 /404
7.5.2 radiooptiongs實現 /407
7.5.3 libril庫實現 /409
7.5.4 reference-ril庫實現 /415
7.5.5 rild守護進程實現 /418
7.5.6 request流程分析 /423
7.5.7 response流程分析 /427
7.6 android sensor hal實現 /434
7.6.1 android sensor構建 /434
7.6.2 sensor hal接口 /435
7.6.3 sensor hal實現 /438
7.7 android wifi hal實現 /441
7.7.1 android wifi系統構架 /441
7.7.2 wpa_supplicant框架 /442
7.7.3 wifi hal實現 /444
7.8 android藍牙本地實現 /447
7.8.1 android藍牙構架 /447
7.8.2 bluez結構體系 /448
7.8.3 bluez適配層 /452
7.9 android 定位實現 /453
7.9.1 定位系統構架 /453
7.9.2 gps hal實現 /454
7.10 android power hal實現 /459
7.11 android Vibrator hal實現 /461
7.12 小結 /462
第8章 dalvik虛擬機的構架、原理與實現 /463
8.1 dalvik虛擬機概述 /464
8.1.1 什麼是dalvik虛擬機 /464
8.1.2 dalvik虛擬機的功能 /464
8.1.3 dalvik虛擬機與java虛擬機的區別 /465
8.2 dalvik構架與實現 /466
8.2.1 dalvik系統構架 /466
8.2.2 dx和dexdump工具 /468
8.2.3 .dex檔案格式解析 /470
8.2.4 dalvik內部機制 /487
8.2.5 dalvik進程管理 /492
8.2.6 dalvik記憶體管理 /501
8.2.7 dalvik載入器 /509
8.2.8 dalvik解釋器 /517
8.2.9 dalvik jit /519
8.3 jni的構架與實現 /523
8.3.1 jni構架 /523
8.3.2 jni實現 /524
8.4 小結 /526
第9章 android 核心庫 /527
9.1 android核心庫簡介 /528
9.2 android系統api /529
9.2.1 android包 /529
9.2.2 android資源包 /529
9.2.3 apicheck機制 /529
9.3 小結 /532
後記 /533

相關詞條

相關搜尋

熱門詞條

聯絡我們