Android系統移植和驅動開發

內容介紹

本書針對特定硬體平台從零構建Android系統,包括平台移植、套用開發、核心開發以及驅動開發。目前企業對Android人才需求主要分布在套用開發和底層系統開發兩個方面,企業最緊缺的是兼具二者的全才型系統工程師,和嵌入式Linux人才需求基本相似。結合這樣的人才需求特點,本書的讀者是想兼顧套用開發和底層開發的系統級開發工程師。本書共12章,開篇介紹了Android底層開發和嵌入式開發之間的關係,接著介紹Android系統的編譯和移植,在這個基礎上進一步闡述了Android驅動開發的原理,最後給出了一個Android智慧型家居的實例。
本書是大學院校嵌入式技術專業、電子信息類其他專業的專業課程教材,也可供高等及中等職業技術院校使用。

作品目錄

第1章Android系統的編譯和移植實例 1
1.1移植背景與目標 1
1.2移植涉及的主要過程 1
1.3下載Android Linux 核心 1
1.4安裝交叉工具鏈 3
1.5移植Android Linux 核心支持EZ6410平台 4
1.5.1CS8900a驅動移植 4
1.5.2鍵盤驅動編寫 4
1.5.3液晶驅動 5
1.5.4觸控螢幕驅動 6
1.5.5USB驅動修改 7
1.5.6安裝Android SDK 8
1.5.7提取Android 根檔案系統 9
1.5.8系統環境設定 11
1.6小結 12
1.7思考題 12
第2章Android系統與嵌入式開發 13
2.1Android與傳統嵌入式Linux系統 13
2.2嵌入式系統概述 13
2.2.1嵌入式系統簡介 13
2.2.2嵌入式系統的特點 14
2.2.3嵌入式系統的發展 15
2.3嵌入式系統的組成 17
2.3.1嵌入式系統的硬體組成 18
2.3.2嵌入式系統的軟體組成 19
2.4嵌入式系統開發概述 19
2.5Android系統概述 26
2.6Android系統架構 28
2.6.1Linux核心(Linux Kernel) 28
2.6.2Android核心庫(Libraries) 29
2.6.3Android運行時環境(Android Runtime) 29
2.6.4Android應用程式框架(Application Framework) 29
2.6.5Android應用程式和小部件 30
2.7小結 30
2.8思考題 30
第3章Android移植平台工具介紹 31
3.1開發板外觀 31
3.2開發板硬體資源 32
3.3功能展示 33
3.4目標板與主機之間的連線 35
3.5檔案傳輸 37
3.6網路檔案系統 38
3.7設備安裝 39
3.8工具軟體的設定 39
3.9U-Boot鏡像的下載與燒寫 42
3.10核心鏡像的下載與燒寫 48
3.11燒寫檔案系統鏡像 50
3.12U-Boot啟動參數設定 51
3.13小結 52
3.14思考題 52
第4章Android移植環境搭建 53
4.1構建Android移植交叉開發環境 53
4.1.1嵌入式交叉編譯環境搭建 53
4.1.2主機交叉開發環境配置 55
4.2Bootloader 59
4.2.1Bootloader的種類 60
4.2.2U-Boot編譯與使用 61
4.2.3U-Boot移植 73
4.3Android核心與移植 74
4.3.1Android移植簡介 76
4.3.2FS_S5PC100開發平台移植環境搭建 76
4.4U-Boot、核心、檔案系統編譯 78
4.4.1U-Boot的編譯 78
4.4.2核心鏡像的編譯 78
4.4.3Android檔案系統的編譯 79
4.5小結 81
4.6思考題 81
第5章Android移植與驅動 82
5.1Android移植和驅動的關係 82
5.2設備驅動程式 82
5.2.1設備驅動概念 82
5.2.2核心驅動程式 83
5.2.3用戶空間驅動程式 83
5.2.4Linux設備驅動概述 83
5.3Linux核心與Android驅動 85
5.3.1Android專用驅動 86
5.3.2Android使用的設備驅動 87
5.4Android驅動的HelloWorld 92
5.5小結 95
5.6思考題 95
第6章Android驅動編程 96
6.1Android核心核心模組編程 96
6.2字元設備驅動編程 105
6.2.1字元設備驅動編寫流程 105
6.2.2重要數據結構 106
6.2.3設備驅動程式主要組成 107
6.3LCD控制器 114
6.3.1LCD控制器介紹 114
6.3.2S5PC100 LCD控制器介紹 114
6.3.3S5PC100 LCD控制器操作 116
6.3.4LCD控制器暫存器 117
6.4驅動程式 123
6.4.1驅動程式初始化和退出 124
6.4.2驅動程式Open and release 函式 126
6.4.3驅動程式ioctl函式 127
6.4.4驅動測試程式main.c 128
6.5小結 128
6.6思考題 129
第7章Android HAL實例解析 130
7.1概述 130
7.2HAL介紹 130
7.3HAL內容 131
7.3.1知識準備:HAL 主要的存儲目錄 131
7.3.2知識準備:兩種 HAL 架構比較 131
7.4mokoid 工程代碼下載與結構分析 132
7.4.1知識準備:mokid項目概述 132
7.4.2知識準備:結構分析 132
7.4.3知識準備:第一種方法 直接調用service方法的實現過程 135
7.4.4知識準備:第二種方法—經過Manager調用service 140
7.4.5FS-S5PC100實驗平台LED燈實驗 143
7.4.6FS-S5PC100實驗平台Sensor實驗 144
7.5實驗中需要注意的問題 145
7.6小結 146
7.7思考題 147
第8章Android 4.0系統的下載與編譯 148
8.1準備Android下載與編譯環境 148
8.1.1硬體環境 148
8.1.2軟體環境 148
8.2下載Android 4.0及Goldfish源碼 149
8.2.1下載並初始化repo工具 149
8.2.2下載Android源碼 150
8.2.3其他源碼下載源 150
8.2.4下載模擬器Goldfish核心源碼 150
8.3編譯Android及Goldfish核心源碼 152
8.3.1編譯Android源碼 152
8.3.2編譯goldfish核心源碼 154
8.4Android編譯過程分析 154
8.4.1source build/envsetup.sh 155
8.4.2執行lunch full-eng 156
8.4.3執行make命令 156
8.5創建目標產品編譯項 157
8.6編譯並運行Android 4.0系統模擬器 158
8.6.1編譯Android模擬器 158
8.6.2Android啟動流程 161
8.7定製手機模擬器ROM 162
8.7.1定製手機開機界面 162
8.7.2定製Android啟動字樣 165
8.7.3定製Android動畫 166
8.8為Android啟動加速 168
8.8.1定製本地服務 168
8.8.2定製Android系統服務 169
8.9Android系統企業級定製 170
8.10小結 172
8.11思考題 172
第9章Android系統蜂鳴器與按鍵 173
9.1蜂鳴器驅動的實現 173
9.1.1PWM定時器概述 173
9.1.2PWM定時器特點 174
9.1.3PWM定時器的暫存器 175
9.1.4PWM定時器操作示例 180
9.1.5蜂鳴器的種類和工作原理 181
9.1.6開發板上的蜂鳴器原理圖分析 181
9.2蜂鳴器HAL層的實現 182
9.3Android按鍵檢測程式流程 184
9.4驅動層實現 185
9.4.1HAL層實現 186
9.4.2HAL使用 187
9.4.3HAL stub實現 188
9.4.4JNI層實現 189
9.4.5Framework層實現 189
9.4.6套用層實現 190
9.5小結 190
9.6思考題 190
第10章Android與感測器設計與實現 191
10.1Android Sensor實現原理概述 191
10.2JNI原理 191
10.3Android HAL 192
10.4Sensor感測器系統 193
10.4.1Sensor Stub分析 194
10.4.2Sensor Stub 實現細節 202
10.5Logcat調試 202
10.6一些開發環境的問題 203
10.7小結 203
10.8思考題 203
第11章Android與攝像頭 204
11.1OV9650介紹 204
11.1.1晶片功能描述 204
11.1.2OV9650暫存器詳解 205
11.2SCCB匯流排 206
11.2.1SCCB協定介紹 206
11.2.2SCCB的匯流排編程 207
11.3CAMIF接口詳解 209
11.3.1基於S5PC100的CAMIF接口介紹 209
11.3.2S5PC100 CAMIF暫存器詳解 210
11.4攝像頭驅動 213
11.4.1攝像頭工作原理 213
11.4.2驅動開發思路 214
11.5Android Camera架構分析 228
11.5.1CameraService介紹 229
11.5.2Camera-HAL介紹 229
11.5.3CameraService與Camera-HAL的聯繫 230
11.6小結 232
11.7思考題 232
第12章Android下綜合項目介紹——智慧型家居 233
12.1項目概述 233
12.1.1項目背景 233
12.1.2術語定義 234
12.1.3系統描述 234
12.1.4功能描述 235
12.1.5項目功能圖 235
12.1.6所涉及的系統與工具 235
12.2前端數據中心(A8)總體設計 236
12.2.1程式設計流程圖 236
12.2.2執行緒定義 236
12.2.3所用類定義 236
12.3前端A8模組設計 237
12.3.1A8-Android Application層設計 237
12.3.2A8-數據傳遞架構模組 245
12.3.3傳輸協定模組設計 257
12.4終端M0模組設計 259
12.4.1終端設備方案描述 259
12.4.2終端設備工作流程 259
12.4.3功能模組描述 260
12.5系統測試 267

相關詞條

熱門詞條

聯絡我們