內容介紹
《Android移動開發技術叢書:Android多媒體開發技術實戰詳解》內容新穎、知識全面、講解詳細,全書分為17個章節,第1章講解了Android系統的基本知識;第2章講解了Android開發之前所要做的工作;第3章講解了深入底層的基本知識;第4章講解了多媒體框架的基本知識;第5章講解了音頻系統框架的基本知識;第6章講解了視頻系統框架的基本知識;第7章講解了Camera照相機系統的基本知識;第8章講解了振動器系統和警報系統的基本知識;第9章講解了平面世界的基本知識;第10章講解了二維動畫套用的基本知識;第11章講解了渲染二維圖像的基本知識;第12章講解了OpenGLES的基本知識;第13章講解了OpenGLES進階方面的基本知識;第14章講解了音頻開發的基本知識;第15章講解了視頻開發套用的基本知識;第16章講解了開發一個屏保系統的具體過程;第17章講解了開發一個音樂播放器的基本過程。作品目錄
目 錄第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.1Android SDK目錄結構 18
2.1.2android.jar及內部結構 19
2.1.3閱讀SDK文檔需要技巧 20
2.1.4不簡單的SDK工具 22
2.2系統實例 23
2.3Android系統架構剖析 26
2.3.1Android體系結構介紹 26
2.3.2Android套用工程檔案組成 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.1Android源碼的結構 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.6Android的啟動過程 52
3.6.1Init初始化進程 52
3.6.2ServiceManager進程 54
3.6.3Zygote進程 54
3.6.4SystemService進程 57
3.7進程之間需要溝通 59
3.8多核通信 60
3.8.1記憶體共享 61
3.8.2過程調用 69
第4章 多媒體框架 73
4.1框架學習路線圖 73
4.2Android多媒體系統介紹 73
4.3OpenMax框架 75
4.3.1分析OpenMax框架構成 76
4.3.2實現OpenMax IL接口 80
4.4OpenCore框架 88
4.4.1OpenCore層次結構 88
4.4.2OpenCore代碼結構 89
4.4.3OpenCore編譯結構 90
4.4.4OpenCore OSCL 94
4.4.5實現OpenCore中的OpenMax
部分 95
4.4.6OpenCore擴展 107
4.5StageFright框架是後來者 113
4.5.1StageFright代碼結構 113
4.5.2StageFright實現OpenMax
接口 114
4.5.3Video Buffer傳輸流程 117
第5章 音頻系統框架 122
5.1音頻系統結構 122
5.2分析音頻系統的層次 123
5.2.1層次說明 124
5.2.2Media庫中的Audio框架 124
5.2.3本地代碼 127
5.2.4JNI代碼 130
5.2.5Java代碼 131
5.3硬體抽象層 131
5.4分析編碼/解碼過程 133
5.4.1AMR編碼 133
5.4.2AMR解碼 137
5.4.3解碼MP3 141
第6章 視頻系統框架 143
6.1視頻系統結構 143
6.2分析Overlay抽象層 145
6.2.1Overlay系統硬體抽象層的接口 145
6.2.2實現Overlay系統抽象層 147
6.2.3實現接口 148
6.3實現Overlay框架 149
第7章 Camera(照相機)系統 152
7.1Camera系統結構 152
7.2分析Camera接口和驅動 155
7.2.1Camera驅動接口 155
7.2.2硬體抽象層 162
7.3實現Camera硬體抽象層 166
7.3.1Java程式部分 166
7.3.2Camera的Java本地調用部分 167
7.3.3Camera的本地庫libui.so 168
7.3.4Camera服務libcameraservice.so 169
第8章 振動器系統和警報器系統 174
8.1振動器系統 174
8.1.1硬體抽象層 175
8.1.2JNI框架部分 177
8.1.3實現硬體抽象層 178
8.2Alarm警報器系統 179
8.2.1Alarm系統結構 179
8.2.2模擬器環境的具體實現 182
第9章 平面世界 183
9.1強大的Graphics類 183
9.2用Color類設定文本顏色 183
9.3用Paint類繪製圖像 185
9.4Canvas類 188
9.5Rect類 191
9.6NinePatch類 195
9.7Matrix類 195
9.8Bitmap類 199
9.8.1Bitmap類的功能 200
9.8.2Bitmap類套用實例 201
9.9BitmapFactory類 207
9.10Typeface類 210
9.11Shader類 210
第10章二維動畫套用 214
10.1Drawable類 214
10.1.1認識Drawable類 214
10.1.2Drawable實現動畫效果 215
10.2實現Tween Animation效果 216
10.2.1Tween動畫基礎 216
10.2.2定義動畫效果 221
10.2.3用實例來體驗Tween動畫套用(一) 222
10.2.4用實例來體驗Tween動畫套用(二) 224
10.3實現Frame Animation效果 225
10.3.1Frame動畫基礎 225
10.3.2Frame動畫套用實例 226
10.4播放GIF動畫 228
10.5實現EditText動畫特效 230
10.6Property Animation 231
第11章渲染二維圖像 233
11.1SurfaceFlinger渲染 233
11.1.1SurfaceFinger基礎 233
11.1.2Surface和Canvas 234
11.1.3Surface渲染 235
11.2Skia渲染 238
11.2.1Skia基礎 238
11.2.2Skia介紹 239
11.2.3Skia中的類 241
11.2.4Skia的最大用處是繪圖 247
11.2.5Skia的其他功能 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.2AudioManager控制鈴聲 346
14.2.1AudioManager中介 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.1Text-To-Speech技術 394
14.5.2谷歌的Voice Recognition技術 397
14.6振動 399
14.6.1Vibrator類 399
14.6.2使用Vibrator實現振動效果 401
14.7鬧鐘 406
14.7.1AlarmManager基礎 406
14.7.2鬧鐘程式 407
第15章視頻開發套用 412
15.1MediaPlayer的秘密 412
15.2VideoView就是這么簡單 418
15.2.1VideoView基礎 419
15.2.2使用VideoView實例 421
15.2.3使用VideoView播放MP4視頻 423
15.3拍照留下美好的瞬間 425
15.3.1Camera基礎 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.2E-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