目 錄
第1章 歡迎進入Android世界 1
1.1 最近幾年的幾件大事 1
1.2 來到智能手機世界 2
1.2.1 何謂智能手機 2
1.2.2 百傢爭鳴 2
1.3 搭建Android應用開發環境 3
1.3.1 安裝Android SDK的係統要求 3
1.3.2 安裝JDK、Eclipse、Android SDK 4
1.3.3 設置Android SDK Home 13
1.3.4 驗證理論 14
1.3.5 創建Android虛擬設備 15
第2章 準備工作 18
2.1 簡析Android安裝文件 18
2.1.1 Android SDK目錄結構 18
2.1.2 android.jar及內部結構 19
2.1.3 閱讀SDK文檔需要技巧 20
2.1.4 不簡單的SDK工具 22
2.2 係統實例 23
2.3 Android係統架構剖析 26
2.3.1 Android體係結構介紹 26
2.3.2 Android應用工程文件組成 29
2.3.3 應用程序的生命周期 31
第3章 深入底層 34
3.1 為什麼要深入底層 34
3.2 搭建Linux開發環境 34
3.2.1 在Linux下安裝Android 34
3.2.2 設置環境變量 35
3.2.3 安裝編譯工具 36
3.3 獲取Android源碼 36
3.4 分析並編譯Android源碼 38
3.4.1 Android源碼的結構 38
3.4.2 編譯Android源碼 44
3.4.3 運行Android源碼 45
3.4.4 選擇編譯方法 46
3.5 運行模擬器不是昨日重現 50
3.5.1 在Linux環境下運行模擬器的方法 50
3.5.2 模擬器輔助工具——adb 51
3.6 Android的啓動過程 52
3.6.1 Init初始化進程 52
3.6.2 ServiceManager進程 54
3.6.3 Zygote進程 54
3.6.4 SystemService進程 57
3.7 進程之間需要溝通 59
3.8 多核通信 60
3.8.1 內存共享 61
3.8.2 過程調用 69
第4章 多媒體框架 73
4.1 框架學習路綫圖 73
4.2 Android多媒體係統介紹 73
4.3 OpenMax框架 75
4.3.1 分析OpenMax框架構成 76
4.3.2 實現OpenMax IL接口 80
4.4 OpenCore框架 88
4.4.1 OpenCore層次結構 88
4.4.2 OpenCore代碼結構 89
4.4.3 OpenCore編譯結構 90
4.4.4 OpenCore OSCL 94
4.4.5 實現OpenCore中的OpenMax
部分 95
4.4.6 OpenCore擴展 107
4.5 StageFright框架是後來者 113
4.5.1 StageFright代碼結構 113
4.5.2 StageFright實現OpenMax
接口 114
4.5.3 Video Buffer傳輸流程 117
第5章 音頻係統框架 122
5.1 音頻係統結構 122
5.2 分析音頻係統的層次 123
5.2.1 層次說明 124
5.2.2 Media庫中的Audio框架 124
5.2.3 本地代碼 127
5.2.4 JNI代碼 130
5.2.5 Java代碼 131
5.3 硬件抽象層 131
5.4 分析編碼/解碼過程 133
5.4.1 AMR編碼 133
5.4.2 AMR解碼 137
5.4.3 解碼MP3 141
第6章 視頻係統框架 143
6.1 視頻係統結構 143
6.2 分析Overlay抽象層 145
6.2.1 Overlay係統硬件抽象層的接口 145
6.2.2 實現Overlay係統抽象層 147
6.2.3 實現接口 148
6.3 實現Overlay框架 149
第7章 Camera(照相機)係統 152
7.1 Camera係統結構 152
7.2 分析Camera接口和驅動 155
7.2.1 Camera驅動接口 155
7.2.2 硬件抽象層 162
7.3 實現Camera硬件抽象層 166
7.3.1 Java程序部分 166
7.3.2 Camera的Java本地調用部分 167
7.3.3 Camera的本地庫libui.so 168
7.3.4 Camera服務libcameraservice.so 169
第8章 振動器係統和警報器係統 174
8.1 振動器係統 174
8.1.1 硬件抽象層 175
8.1.2 JNI框架部分 177
8.1.3 實現硬件抽象層 178
8.2 Alarm警報器係統 179
8.2.1 Alarm係統結構 179
8.2.2 模擬器環境的具體實現 182
第9章 平麵世界 183
9.1 強大的Graphics類 183
9.2 用Color類設置文本顔色 183
9.3 用Paint類繪製圖像 185
9.4 Canvas類 188
9.5 Rect類 191
9.6 NinePatch類 195
9.7 Matrix類 195
9.8 Bitmap類 199
9.8.1 Bitmap類的功能 200
9.8.2 Bitmap類應用實例 201
9.9 BitmapFactory類 207
9.10 Typeface類 210
9.11 Shader類 210
第10章 二維動畫應用 214
10.1 Drawable類 214
10.1.1 認識Drawable類 214
10.1.2 Drawable實現動畫效果 215
10.2 實現Tween Animation效果 216
10.2.1 Tween動畫基礎 216
10.2.2 定義動畫效果 221
10.2.3 用實例來體驗Tween動畫應用(一) 222
10.2.4 用實例來體驗Tween動畫應用(二) 224
10.3 實現Frame Animation效果 225
10.3.1 Frame動畫基礎 225
10.3.2 Frame動畫應用實例 226
10.4 播放GIF動畫 228
10.5 實現EditText動畫特效 230
10.6 Property Animation 231
第11章 渲染二維圖像 233
11.1 SurfaceFlinger渲染 233
11.1.1 SurfaceFinger基礎 233
11.1.2 Surface和Canvas 234
11.1.3 Surface渲染 235
11.2 Skia渲染 238
11.2.1 Skia基礎 238
11.2.2 Skia介紹 239
11.2.3 Skia中的類 241
11.2.4 Skia的最大用處是繪圖 247
11.2.5 Skia的其他功能 251
第12章 OpenGL ES來瞭 253
12.1 認識OpenGL ES 253
12.1.1 使用點綫法繪製三角形 254
12.1.2 使用索引法繪製三角形 259
12.1.3 使用頂點法繪製三角形 264
12.2 時光的影子 266
12.2.1 正交投影 266
12.2.2 透視投影 267
12.2.3 實現投影效果 267
12.3 體驗陽光的魅力 271
12.3.1 何謂光照 271
12.3.2 實現定位光效果 273
12.3.3 開啓/關閉光照 279
12.4 高深莫測的紋理映射 284
12.4.1 實現地月模型效果 284
12.4.2 實現三角形紋理貼圖效果 292
12.4.3 實現紋理拉伸效果 296
第13章 OpenGL ES進階 301
13.1 繪製三維圖形 301
13.1.1 繪製圓柱體 301
13.1.2 繪製圓環 309
13.1.3 繪製拋物麵 313
13.1.4 繪製螺鏇麵效果 316
13.2 坐標變換 320
13.2.1 縮放變換處理 320
13.2.2 平移變換處理 325
13.3 混閤與透明 327
13.3.1 相關基本知識 328
13.3.2 實現混閤效果 329
13.4 攝像機和霧特效 333
13.4.1 攝像機 333
13.4.2 霧特效 334
13.4.3 親眼看一看霧特效和攝像機效果 334
第14章 音頻開發應用 345
14.1 實現音頻功能的接口類 345
14.2 AudioManager控製鈴聲 346
14.2.1 AudioManager中介 346
14.2.2 親手試一試——設置短信提示鈴聲 349
14.2.3 調節手機音量的大小 352
14.3 錄音處理 356
14.3.1 使用MediaRecorder接口錄製音頻 356
14.3.2 使用AudioRecord錄製音頻 359
14.3.3 使用AudioRecord接口錄音 364
14.3.4 繼續使用AudioRecord錄製音頻 364
14.4 插放音頻 367
14.4.1 使用AudioTrack播放音頻 367
14.4.2 使用MediaPlayer播放音頻 370
14.4.3 不能沒有SoundPool 384
14.4.4 使用Ringtone播放鈴聲 386
14.4.5 使用JetPlayer播放音頻 389
14.4.6 使用AudioEffect處理音效 390
14.5 語音識彆技術 393
14.5.1 Text-To-Speech技術 394
14.5.2 榖歌的Voice Recognition技術 397
14.6 振動 399
14.6.1 Vibrator類 399
14.6.2 使用Vibrator實現振動效果 401
14.7 鬧鍾 406
14.7.1 AlarmManager基礎 406
14.7.2 鬧鍾程序 407
第15章 視頻開發應用 412
15.1 MediaPlayer的秘密 412
15.2 VideoView就是這麼簡單 418
15.2.1 VideoView基礎 419
15.2.2 使用VideoView實例 421
15.2.3 使用VideoView播放MP4視頻 423
15.3 拍照留下美好的瞬間 425
15.3.1 Camera基礎 425
15.3.2 小試牛刀 430
第16章 開發一個屏保係統 436
16.1 屏保程序介紹 436
16.2 分析開發屏保程序的原理 436
16.3 我的屏保程序 437
16.3.1 準備素材圖片 438
16.3.2 編寫布局文件 438
16.3.3 編寫主程序文件 439
第17章 開發一個音樂播放器 451
17.1 項目介紹 451
17.2 係統需求分析 451
17.2.1 構成模塊 451
17.2.2 係統流程 456
17.2.3 功能結構 457
17.2.4 係統功能說明 457
17.2.5 係統需求 458
17.3 數據庫設計 459
17.3.1 字段設計 459
17.3.2 E-R圖設計 459
17.3.3 數據庫連接 460
17.3.4 創建數據庫 460
17.3.5 操作數據庫 461
17.3.6 數據顯示 462
17.4 具體編碼 463
17.4.1 設備服務信息 463
17.4.2 播放器主界麵 464
17.4.3 播放列錶功能 475
17.4.4 菜單功能模塊 479
17.4.5 播放設置界麵 482
17.4.6 設置顯示歌詞 485
17.4.7 文件瀏覽器模塊 486
17.4.8 數據存儲 489
· · · · · · (
收起)