Android App開發進階與項目實戰

《Android App開發進階與項目實戰》是清華大學出版社於2021年出版的書籍。

基本介紹

  • 書名:Android App開發進階與項目實戰
  • 作者:歐陽燊
  • 出版社:清華大學出版社
  • ISBN:9787302592594
內容簡介,圖書目錄,

內容簡介

本書是一部Android開發的進階實戰教程,由點及面、由原理到實戰,帶領讀者一步一步深入探索App開發的神奇世界。全書共分為13章。其中,前5章是單機部分,主要講解App的圖像加工、事件互動、動畫特效、手機閱讀、三維處理等App開發的高級進階;中間4章是聯網部分,主要講解App的網路通信、音頻處理、視頻處理、定位導航等網路互動的高級進階;後4章涉及人工智慧方面的內容,主要講解物聯網、智慧型語音、人臉識別、線上直播等智慧型化套用進階。

圖書目錄

第1章 圖像加工 1
1.1 圖像裝飾 1
1.1.1 卡片視圖 1
1.1.2 給圖像添加裝飾 3
1.1.3 給圖像添加水波特效 6
1.2 點陣圖加工 8
1.2.1 轉換點陣圖的像素色彩 8
1.2.2 裁剪點陣圖內部區域 10
1.2.3 利用矩陣變換點陣圖 12
1.3 自定義圖形 14
1.3.1 點陣圖與圖形互轉 14
1.3.2 剪裁圖形內部區域 15
1.3.3 給圖形添加小部件 17
1.4 實戰項目:青蔥歲月之可愛大頭貼 20
1.4.1 需求描述 20
1.4.2 功能分析 20
1.4.3 效果展示 22
1.5 小結 23
1.6 動手練習 23
第2章 事件互動 24
2.1 按鍵事件 24
2.1.1 檢測軟鍵盤 24
2.1.2 檢測物理按鍵 26
2.1.3 接管返回按鍵 27
2.2 觸摸事件 29
2.2.1 手勢事件的分發流程 29
2.2.2 接管手勢事件處理 33
2.2.3 跟蹤滑動軌跡實現手寫簽名 36
2.3 根據觸摸行為辨別手勢動作 38
2.3.1 區分點擊和長按動作 38
2.3.2 識別手勢滑動的方向 40
2.3.3 辨別縮放與旋轉手勢 42
2.4 手勢衝突處理 46
2.4.1 上下滾動與左右滑動的衝突處理 46
2.4.2 內部滑動與翻頁滑動的衝突處理 49
2.4.3 正常下拉與下拉刷新的衝突處理 53
2.5 實戰項目:仿美圖秀秀的摳圖工具 56
2.5.1 需求描述 56
2.5.2 功能分析 57
2.5.3 效果展示 58
2.6 小結 59
2.7 動手練習 59
第3章 動畫特效 60
3.1 幀動畫 60
3.1.1 幀動畫的實現 60
3.1.2 顯示動圖特效 62
3.1.3 淡入淡出動畫 66
3.2 補間動畫 67
3.2.1 補間動畫的種類 67
3.2.2 補間動畫的原理 72
3.2.3 集合動畫 74
3.3 屬性動畫 76
3.3.1 常規的屬性動畫 76
3.3.2 屬性動畫組合 78
3.3.3 插值器和估值器 80
3.3.4 利用估值器實現彈幕動畫 83
3.4 遮罩動畫及滾動器 86
3.4.1 畫布的繪圖層次 86
3.4.2 實現百葉窗動畫 90
3.4.3 利用滾動器實現平滑翻頁 94
3.5 實戰項目:仿手機QQ的動感影集 97
3.5.1 需求描述 98
3.5.2 功能分析 99
3.5.3 效果展示 102
3.6 小結 104
3.7 動手練習 104
第4章 手機閱讀 105
4.1 貝塞爾曲線 105
4.1.1 貝塞爾曲線的原理 105
4.1.2 實現波浪起伏動畫 107
4.1.3 實現給主播刷禮物的特效 108
4.2 瀏覽PDF檔案 111
4.2.1 PDF檔案渲染器 111
4.2.2 實現平滑翻書效果 113
4.2.3 實現捲曲翻書動畫 116
4.3 JNI開發 122
4.3.1 NDK環境搭建 122
4.3.2 創建JNI接口 125
4.3.3 JNI實現加解密 128
4.3.4 採取CMake編譯方式 132
4.4 實戰項目:筆墨飄香之電子書架 134
4.4.1 需求描述 134
4.4.2 功能分析 136
4.4.3 效果展示 139
4.5 小結 141
4.6 動手練習 141
第5章 三維處理 142
5.1 OpenGL 142
5.1.1 三維投影 142
5.1.2 輪廓勾勒 147
5.1.3 紋理貼圖 152
5.2 OpenGL ES 155
5.2.1 著色器小程式 155
5.2.2 通過矩陣變換調整視角 160
5.2.3 給三維物體貼圖 163
5.3 Vulkan 166
5.3.1 下一代OpenGL——Vulkan 166
5.3.2 簡單的Vulkan例子 167
5.3.3 Vulkan的實戰套用 169
5.4 實戰項目:虛擬現實的全景相冊 171
5.4.1 需求描述 171
5.4.2 功能分析 172
5.4.3 效果展示 176
5.5 小結 177
5.6 動手練習 177
第6章 網路通信 178
6.1 多執行緒 178
6.1.1 通過runOnUiThread快速操縱界面 178
6.1.2 利用執行緒池Executor調度異步任務 181
6.1.3 工作管理器WorkManager 183
6.2 HTTP訪問 186
6.2.1 通過okhttp調用HTTP接口 187
6.2.2 使用okhttp下載和上傳檔案 191
6.2.3 實現下拉刷新和上拉載入 196
6.3 即時通信 200
6.3.1 通過SocketIO傳輸文本訊息 200
6.3.2 通過SocketIO傳輸圖片訊息 203
6.3.3 利用WebSocket傳輸訊息 206
6.4 實戰項目:仿微信的私聊和群聊 209
6.4.1 需求描述 209
6.4.2 功能分析 211
6.4.3 效果展示 217
6.5 小結 221
6.6 動手練習 221
第7章 音韻留聲 222
7.1 音量調節 222
7.1.1 拖動條和滑動條 222
7.1.2 音頻管理器 225
7.1.3 音量調節對話框 226
7.2 音頻錄播 230
7.2.1 普通音頻的錄播 230
7.2.2 原始音頻的錄播 235
7.2.3 自定義音頻控制條 238
7.3 音效增強 244
7.3.1 鈴聲播放 244
7.3.2 聲音池調度 246
7.3.3 錄製WAV音頻 249
7.3.4 錄製MP3音頻 253
7.4 實戰項目:仿喜馬拉雅的聽說書 257
7.4.1 需求描述 257
7.4.2 功能分析 259
7.4.3 效果展示 262
7.5 小結 265
7.6 動手練習 265
第8章 影像記錄 266
8.1 經典相機 266
8.1.1 表面視圖和紋理視圖 266
8.1.2 使用經典相機拍照 268
8.1.3 使用經典相機錄像 273
8.1.4 自定義視頻控制條 276
8.2 二代相機 279
8.2.1 使用二代相機拍照 280
8.2.2 使用二代相機錄像 286
8.2.3 新型播放器ExoPlayer 290
8.3 畫面截取 294
8.3.1 截取視頻的某幀 294
8.3.2 自定義懸浮窗 296
8.3.3 對螢幕畫面截圖 301
8.4 實戰項目:仿抖音的短視頻分享 305
8.4.1 需求描述 305
8.4.2 功能分析 308
8.4.3 效果展示 311
8.5 小結 313
8.6 動手練習 313
第9章 定位導航 314
9.1 基礎定位 314
9.1.1 開啟定位功能 314
9.1.2 獲取定位信息 316
9.1.3 根據經緯度查找詳細地址 321
9.2 擴展定位 323
9.2.1 獲取照片裡的位置信息 323
9.2.2 全球衛星導航系統 327
9.2.3 室內WiFi定位 330
9.3 地圖導航 336
9.3.1 集成騰訊地圖 336
9.3.2 顯示地圖面板 339
9.3.3 獲取地點信息 341
9.3.4 規劃導航路線 343
9.4 實戰項目:仿微信的附近的人 347
9.4.1 需求描述 347
9.4.2 功能分析 349
9.4.3 效果展示 352
9.5 小結 355
9.6 動手練習 355
第10章 物聯網 356
10.1 感測器 356
10.1.1 感測器的種類 356
10.1.2 搖一搖—加速度感測器 358
10.1.3 指南針—磁場感測器 360
10.1.4 計步器、感光器和陀螺儀 362
10.2 傳統藍牙 365
10.2.1 藍牙設備配對 365
10.2.2 藍牙音頻傳輸 371
10.2.3 點對點藍牙通信 374
10.3 低功耗藍牙 381
10.3.1 掃描BLE設備 381
10.3.2 傳送BLE廣播 387
10.3.3 通過主從BLE實現聊天套用 390
10.4 實戰項目:自動駕駛的智慧型小車 397
10.4.1 需求描述 397
10.4.2 功能分析 397
10.4.3 效果展示 401
10.5 小結 403
10.6 動手練習 403
第11章 智慧型語音 404
11.1 原生語音處理 404
11.1.1 系統自帶的語音引擎 404
11.1.2 文字轉語音 406
11.1.3 原生的語音識別 409
11.2 線上語音處理 411
11.2.1 中文轉拼音 411
11.2.2 線上語音合成 414
11.2.3 線上語音識別 417
11.3 基於機器學習的語音推斷 421
11.3.1 TensorFlow簡介 422
11.3.2 TensorFlow Lite 423
11.3.3 從語音中識別指令 425
11.4 實戰項目:你問我答之小小機器人 426
11.4.1 需求描述 426
11.4.2 功能分析 427
11.4.3 效果展示 433
11.5 小結 437
11.6 動手練習 437
第12章 人臉識別 438
12.1 簡單圖像識別 438
12.1.1 自動識別驗證碼 438
12.1.2 生成二維碼圖片 442
12.1.3 掃描識別二維碼 444
12.2 基於計算機視覺的人臉識別 449
12.2.1 檢測圖像中的人臉 449
12.2.2 OpenCV簡介及其集成 452
12.2.3 利用OpenCV檢測人臉 454
12.3 人臉識別的更多套用 457
12.3.1 藉助攝像頭實時檢測人臉 457
12.3.2 比較兩張人臉的相似程度 460
12.3.3 根據人臉估算性別和年齡 463
12.4 實戰項目:尋人神器之智慧天眼 466
12.4.1 需求描述 467
12.4.2 功能分析 467
12.4.3 效果展示 470
12.5 小結 471
12.6 動手練習 472
第13章 線上直播 473
13.1 搭建WebRTC的服務端 473
13.1.1 WebRTC的系統架構 473
13.1.2 搭建信令伺服器 475
13.1.3 搭建穿透伺服器 477
13.2 給App集成WebRTC 480
13.2.1 引入WebRTC開源庫 480
13.2.2 實現WebRTC的發起方 484
13.2.3 實現WebRTC的接收方 487
13.3 實戰項目:仿微信的視頻通話 489
13.3.1 需求描述 490
13.3.2 功能分析 491
13.3.3 效果展示 495
13.4 實戰項目:仿拼多多的直播帶貨 497
13.4.1 需求描述 497
13.4.2 功能分析 498
13.4.3 效果展示 504
13.5 小結 507
13.6 動手練習 507
附錄A 移動網際網路行業的新技術發展簡表 508
附錄B Android各版本的新增功能簡表 510
附錄C Android常用開發庫說明簡表 512
附錄D 移動開發專業術語索引 514
附錄E 本書的服務端程式說明 517

相關詞條

熱門詞條

聯絡我們