Android Studio 開發實戰:從零基礎到 App 上線, 3/e
歐陽燊
買這商品的人也買了...
-
$594$564 -
$1,000$790 -
$234$222 -
$650$553 -
$454UG NX 12.0 中文版完全自學一本通
-
$520$406 -
$474$450 -
$607Android 進階之光, 2/e
-
$658Android App 開發進階與項目實戰
-
$286UG NX 12.0 實例教程(微課版)
-
$254UG 12.0 塑料模具設計實例教程
-
$1,194$1,134 -
$528$502 -
$449物聯網及低功耗藍牙5.x高級開發
-
$480$379 -
$374HTML5移動網站與App開發實戰
-
$540$459 -
$301軟件項目開發實戰 — App 全棧
-
$594$564 -
$720$569 -
$1,200$948 -
$650$507 -
$680$530 -
$420$332 -
$414$393
相關主題
商品描述
本書是一部Android開發的實戰教程,由淺入深、由基礎到高級,帶領讀者一步一步走進App開發的神奇世界。全書共分為20章。其中,前10章是基礎部分,主要講解Android Studio的環境搭建、App開發的各種常用控件、App開發的四大組件、App的數據存儲方式、如何打造App的安裝包;後10章是進階部分,主要講解App開發的事件交互、動畫特效、網絡通信、多媒體、手機閱讀、感知定位、物聯網、智能語音、機器視覺、在線直播等。書中在講解知識點的同時給出了大量實戰範例,方便讀者迅速將所學的知識運用到實際開發中。通過本書的學習,讀者不僅能夠掌握3類主流App的基本開發技術,包括購物App(電子商務)、聊天App(即時通信)、娛樂App(短視頻分享),還能夠學會開發一些趣味應用,包括計算器、記賬本、摳圖工具、動感影集、電子閱讀、附近交友、遙控小車、語音問答、人臉識別、視頻通話等。 本書適用於Android開發的廣大從業者、有志於轉型App開發的程序員、App開發的業餘愛好者,也可作為大中專院校與培訓機構的Android課程教材。
作者簡介
歐陽燊,同濟大學電腦科學與技術專業學士,浙江大學軟體工程專業工程碩士,先後就職於福建新大陸軟體工程公司、亞信科技有限公司杭州研發中心、福建福諾行動通訊技術有限公司,歷任系統分析師、資深軟體工程師。具備14年以上軟體開發經驗,熟悉C/C++、Java及相關軟體架構,兩年Android開發經驗,從事一款用戶量超千萬的App專案開發,對Android開發有豐富的實戰經驗。
目錄大綱
目 錄
第1章 Android開發環境搭建 1
1.1 Android開發簡介 1
1.1.1 Android的發展歷程 1
1.1.2 Android Studio的發展歷程 2
1.2 搭建Android Studio開發環境 2
1.2.1 電腦配置要求 2
1.2.2 安裝Android Studio 3
1.2.3 下載Android的SDK 6
1.3 創建並編譯App工程 7
1.3.1 創建新項目 7
1.3.2 導入已有的工程 9
1.3.3 編譯App工程 10
1.4 運行和調試App 11
1.4.1 創建內置模擬器 11
1.4.2 在模擬器上運行App 14
1.4.3 觀察App的運行日誌 15
1.5 小結 16
1.6 動手練習 16
第2章 Android App開發基礎 17
2.1 App的開發特點 17
2.1.1 App的運行環境 17
2.1.2 App的開發語言 19
2.1.3 App連接的數據庫 22
2.2 App的工程結構 23
2.2.1 App工程目錄結構 23
2.2.2 編譯配置文件build.gradle 24
2.2.3 運行配置文件
AndroidManifest.xml 26
2.3 App的設計規範 27
2.3.1 界面設計與代碼邏輯 28
2.3.2 利用XML標記描繪應用界面 29
2.3.3 使用Java代碼書寫程序邏輯 30
2.4 App的活動頁面 31
2.4.1 創建新的App頁面 31
2.4.2 快速生成頁面源碼 33
2.4.3 跳轉到另一個頁面 34
2.5 小結 35
2.6 動手練習 36
第3章 簡單控件 37
3.1 文本顯示 37
3.1.1 設置文本的內容 37
3.1.2 設置文本的大小 38
3.1.3 設置文本的顏色 40
3.2 視圖基礎 42
3.2.1 設置視圖的寬和高 42
3.2.2 設置視圖的間距 44
3.2.3 設置視圖的對齊方式 45
3.3 常用佈局 46
3.3.1 線性佈局LinearLayout 46
3.3.2 相對佈局RelativeLayout 49
3.3.3 網格佈局GridLayout 51
3.3.4 滾動視圖ScrollView 52
3.4 按鈕觸控 53
3.4.1 按鈕控件Button 53
3.4.2 點擊事件和長按事件 55
3.4.3 禁用與恢復按鈕 56
3.5 圖像顯示 58
3.5.1 圖像視圖ImageView 58
3.5.2 圖像按鈕ImageButton 60
3.5.3 同時展示文本與圖像 61
3.6 實戰項目:計算器 62
3.6.1 需求描述 62
3.6.2 界面設計 62
3.6.3 關鍵代碼 63
3.7 小結 65
3.8 動手練習 65
第4章 常用組件 66
4.1 啟停活動頁面 66
4.1.1 Activity的啟動和結束 66
4.1.2 Activity的生命周期 67
4.1.3 Activity的啟動模式 70
4.2 在活動之間傳遞消息 73
4.2.1 顯式Intent和隱式Intent 73
4.2.2 普通的活動數據交互 75
4.2.3 改進後的活動數據交互 78
4.3 收發應用廣播 80
4.3.1 收發標準廣播 80
4.3.2 收發有序廣播 83
4.3.3 收發靜態廣播 84
4.3.4 定時管理器AlarmManager 86
4.4 操作後台服務 89
4.4.1 服務的啟動和停止 89
4.4.2 服務的綁定與解綁 92
4.4.3 活動與服務之間的交互 94
4.5 小結 96
4.6 動手練習 96
第5章 中級控件 97
5.1 圖形定製 97
5.1.1 圖形Drawable 97
5.1.2 形狀圖形 98
5.1.3 九宮格圖片 101
5.1.4 狀態列表圖形 102
5.2 選擇按鈕 103
5.2.1 復選框CheckBox 103
5.2.2 開關按鈕Switch 105
5.2.3 單選按鈕RadioButton 106
5.3 文本輸入 108
5.3.1 編輯框EditText 108
5.3.2 焦點變更監聽器 110
5.3.3 文本變化監聽器 111
5.4 對話框 113
5.4.1 提醒對話框AlertDialog 113
5.4.2 日期對話框DatePickerDialog 115
5.4.3 時間對話框TimePickerDialog 116
5.5 實戰項目:找回密碼 117
5.5.1 需求描述 117
5.5.2 界面設計 118
5.5.3 關鍵代碼 119
5.6 小結 121
5.7 動手練習 121
第6章 數據存儲 122
6.1 鍵值對 122
6.1.1 共享參數的用法 122
6.1.2 實現記住密碼功能 123
6.1.3 更安全的數據倉庫 124
6.2 數據庫 126
6.2.1 SQL的基本語法 127
6.2.2 數據庫管理器
SQLiteDatabase 129
6.2.3 數據庫幫助器
SQLiteOpenHelper 130
6.2.4 優化記住密碼功能 133
6.3 存儲卡 135
6.3.1 私有存儲空間與公共存儲
空間 135
6.3.2 在存儲卡上讀寫文件 136
6.3.3 運行時動態申請權限 139
6.4 應用組件Application 142
6.4.1 Application的生命周期 142
6.4.2 利用Application操作全局
變量 143
6.4.3 避免方法數過多的問題 144
6.4.4 利用Room簡化數據庫操作 145
6.5 共享數據 148
6.5.1 通過ContentProvider封裝
數據 148
6.5.2 通過ContentResolver訪問
數據 151
6.5.3 利用ContentResolver讀寫
聯系人 153
6.5.4 利用ContentObserver監聽
短信 154
6.6 實戰項目:購物車 156
6.6.1 需求描述 156
6.6.2 界面設計 158
6.6.3 關鍵代碼 159
6.7 小結 163
6.8 動手練習 163
第7章 高級控件 164
7.1 下拉框 164
7.1.1 下拉框控件Spinner 164
7.1.2 數組適配器ArrayAdapter 166
7.1.3 簡單適配器SimpleAdapter 166
7.2 列表類視圖 168
7.2.1 基本適配器BaseAdapter 168
7.2.2 列表視圖ListView 170
7.2.3 網格視圖GridView 174
7.3 翻頁類視圖 176
7.3.1 翻頁視圖ViewPager 176
7.3.2 翻頁標簽欄PagerTabStrip 179
7.3.3 簡單的啟動引導頁 180
7.4 碎片Fragment 183
7.4.1 碎片的靜態註冊 183
7.4.2 碎片的動態註冊 185
7.4.3 改進的啟動引導頁 188
7.5 實戰項目:記賬本 190
7.5.1 需求描述 190
7.5.2 界面設計 191
7.5.3 關鍵代碼 192
7.6 小結 195
7.7 動手練習 195
第8章 自定義控件 196
8.1 視圖的構建過程 196
8.1.1 視圖的構造方法 196
8.1.2 視圖的測量方法 199
8.1.3 視圖的繪制方法 202
8.2 改造已有的控件 205
8.2.1 自定義月份選擇器 205
8.2.2 給翻頁標簽欄添加新屬性 206
8.2.3 不滾動的列表視圖 208
8.3 推送消息通知 210
8.3.1 通知推送Notification 210
8.3.2 通知渠道NotificationChannel 213
8.3.3 推送服務到前臺 215
8.3.4 仿微信的懸浮通知 216
8.4 通過持續繪制實現簡單動畫 221
8.4.1 Handler的延遲機制 221
8.4.2 重新繪制視圖界面 222
8.4.3 自定義餅圖動畫 224
8.5 實戰項目:廣告輪播 227
8.5.1 需求描述 227
8.5.2 界面設計 227
8.5.3 關鍵代碼 228
8.6 小結 231
8.7 動手練習 231
第9章 組合控件 232
9.1 底部標簽欄 232
9.1.1 利用BottomNavigationView實現
底部標簽欄 232
9.1.2 自定義標簽按鈕 236
9.1.3 結合RadioGroup和ViewPager
自定義底部標簽欄 238
9.2 頂部導航欄 241
9.2.1 工具欄Toolbar 241
9.2.2 溢出菜單OverflowMenu 242
9.2.3 標簽佈局TabLayout 244
9.3 增強型列表 246
9.3.1 循環視圖RecyclerView 247
9.3.2 佈局管理器LayoutManager 249
9.3.3 動態更新循環視圖 252
9.4 升級版翻頁 254
9.4.1 下拉刷新佈局
SwipeRefreshLayout 254
9.4.2 第二代翻頁視圖ViewPager2 256
9.4.3 給ViewPager2集成標簽佈局 259
9.5 實戰項目:電商首頁 261
9.5.1 需求描述 261
9.5.2 界面設計 262
9.5.3 關鍵代碼 263
9.6 小結 264
9.7 動手練習 264
第10章 打造安裝包 265
10.1 應用打包 265
10.1.1 導出APK安裝包 265
10.1.2 製作App圖標 267
10.1.3 給APK瘦身 268
10.2 規範處理 271
10.2.1 版本設置 271
10.2.2 發布模式 272
10.2.3 多渠道打包 274
10.3 安全加固 276
10.3.1 反編譯 276
10.3.2 代碼混淆 278
10.3.3 第三方加固及重簽名 279
10.4 小結 280
10.5 動手練習 280
第11章 事件交互 281
11.1 按鍵事件 281
11.1.1 檢測軟鍵盤 281
11.1.2 檢測物理按鍵 283
11.1.3 接管返回按鍵 284
11.2 觸摸事件 285
11.2.1 手勢事件的分發流程 285
11.2.2 接管手勢事件處理 289
11.2.3 跟蹤滑動軌跡實現手寫簽名 292
11.3 根據觸摸行為辨別手勢動作 293
11.3.1 區分點擊和長按動作 293
11.3.2 識別手勢滑動的方向 295
11.3.3 辨別縮放與旋轉手勢 297
11.4 手勢沖突處理 300
11.4.1 上下滾動與左右滑動的沖突
處理 300
11.4.2 內部滑動與翻頁滑動的沖突
處理 302
11.4.3 正常下拉與下拉刷新的沖突
處理 306
11.5 實戰項目:仿美圖秀秀的摳圖工具 309
11.5.1 需求描述 309
11.5.2 功能分析 309
11.5.3 效果展示 310
11.6 小結 311
11.7 動手練習 311
第12章 動畫特效 312
12.1 幀動畫 312
12.1.1 幀動畫的實現 312
12.1.2 顯示動圖特效 314
12.1.3 淡入淡出動畫 317
12.2 補間動畫 318
12.2.1 補間動畫的種類 318
12.2.2 補間動畫的原理 322
12.2.3 集合動畫 324
12.3 屬性動畫 325
12.3.1 常規的屬性動畫 325
12.3.2 屬性動畫組合 328
12.3.3 插值器和估值器 329
12.3.4 利用估值器實現打賞動畫 332
12.4 遮罩動畫及滾動器 335
12.4.1 畫布的繪圖層次 335
12.4.2 實現百葉窗動畫 338
12.4.3 利用滾動器實現平滑翻頁 342
12.5 實戰項目:仿手機QQ的動感影集 344
12.5.1 需求描述 345
12.5.2 功能分析 346
12.5.3 效果展示 349
12.6 小結 350
12.7 動手練習 350
第13章 網絡通信 351
13.1 多線程 351
13.1.1 分線程通過Handler操作
界面 351
13.1.2 通過runOnUiThread快速操縱
界面 354
13.1.3 工作管理器WorkManager 356
13.2 HTTP訪問 358
13.2.1 移動數據格式JSON 359
13.2.2 通過okhttp調用HTTP接口 361
13.2.3 使用okhttp下載和上傳文件 365
13.3 圖片加載 368
13.3.1 使用Glide加載網絡圖片 369
13.3.2 利用Glide實現圖片的三級
緩存 371
13.3.3 使用Glide加載特殊圖像 373
13.4 即時通信 375
13.4.1 通過SocketIO傳輸文本
消息 375
13.4.2 通過SocketIO傳輸圖片
消息 378
13.4.3 利用WebSocket傳輸消息 380
13.5 實戰項目:仿微信的私聊和群聊 383
13.5.1 需求描述 383
13.5.2 功能分析 384
13.5.3 效果展示 390
13.6 小結 393
13.7 動手練習 393
第14章 多媒體 394
14.1 音頻錄播 394
14.1.1 使用系統錄音機錄制音頻 394
14.1.2 利用MediaPlayer播放音頻 395
14.1.3 利用MediaRecorder錄制
音頻 398
14.2 傳統攝制 399
14.2.1 使用系統相機拍攝照片 399
14.2.2 使用系統攝像機錄制視頻 401
14.2.3 利用視頻視圖與媒體控制條
播放視頻 403
14.2.4 截取視頻的某幀畫面 405
14.3 增強攝制 407
14.3.1 使用CameraX拍照 407
14.3.2 使用CameraX錄像 411
14.3.3 新型播放器ExoPlayer 413
14.4 實戰項目:仿抖音的短視頻分享 416
14.4.1 需求描述 417
14.4.2 功能分析 418
14.4.3 效果展示 421
14.5 小結 422
14.6 動手練習 422
第15章 手機閱讀 423
15.1 瀏覽網頁 423
15.1.1 打開本地網頁 423
15.1.2 網頁瀏覽器 425
15.1.3 瀏覽EPUB文件 432
15.2 瀏覽PDF文件 435
15.2.1 PDF文件渲染器 435
15.2.2 實現平滑翻書效果 437
15.2.3 實現捲曲翻書動畫 439
15.3 瀏覽Office文檔 444
15.3.1 利用POI庫瀏覽Word和
Excel文檔 445
15.3.2 結合前後端瀏覽PPT文檔 447
15.3.3 利用TBS瀏覽各種文檔 449
15.4 JNI開發 451
15.4.1 NDK環境搭建 451
15.4.2 創建JNI接口 454
15.4.3 JNI實現加解密 457
15.4.4 採取CMake編譯方式 459
15.5 實戰項目:筆墨飄香之電子書架 462
15.5.1 需求描述 462
15.5.2 功能分析 463
15.5.3 效果展示 466
15.6 小結 467
15.7 動手練習 468
第16章 感知定位 469
16.1 傳感器 469
16.1.1 傳感器的種類 469
16.1.2 搖一搖——加速度傳感器 471
16.1.3 指南針——磁場傳感器 472
16.1.4 計步器、感光器和陀螺儀 474
16.2 基礎定位 476
16.2.1 開啟定位功能 476
16.2.2 獲取定位信息 478
16.2.3 根據經緯度查找詳細地址 482
16.2.4 全球衛星導航系統 483
16.3 地圖導航 486
16.3.1 集成騰訊地圖 486
16.3.2 顯示地圖面板 488
16.3.3 獲取地點信息 490
16.3.4 規劃導航路線 492
16.4 實戰項目:仿微信的附近的人 496
16.4.1 需求描述 496
16.4.2 功能分析 497
16.4.3 效果展示 500
16.5 小結 501
16.6 動手練習 502
第17章 物聯網 503
17.1 短距離通信 503
17.1.1 WiFi管理器 503
17.1.2 NFC近場通信 506
17.1.3 紅外遙控 511
17.2 傳統藍牙 515
17.2.1 藍牙技術的發展歷程 515
17.2.2 藍牙設備配對 515
17.2.3 點對點藍牙通信 521
17.3 低功耗藍牙 526
17.3.1 掃描BLE設備 526
17.3.2 發送BLE廣播 531
17.3.3 通過主從BLE實現聊天
應用 533
17.4 實戰項目:自動駕駛的智能小車 538
17.4.1 需求描述 539
17.4.2 功能分析 539
17.4.3 效果展示 543
17.5 小結 544
17.6 動手練習 544
第18章 智能語音 545
18.1 原生語音處理 545
18.1.1 系統自帶的語音引擎 545
18.1.2 文字轉語音 547
18.1.3 中文轉拼音 549
18.2 在線語音處理 551
18.2.1 原始音頻錄播 552
18.2.2 在線語音合成 554
18.2.3 在線語音識別 558
18.3 基於機器學習的語音推斷 561
18.3.1 TensorFlow簡介 561
18.3.2 TensorFlow Lite 563
18.3.3 從語音中識別指令 564
18.4 實戰項目:你問我答之小小機器人 566
18.4.1 需求描述 566
18.4.2 功能分析 567
18.4.3 效果展示 572
18.5 小結 574
18.6 動手練習 574
第19章 機器視覺 575
19.1 簡單圖像識別 575
19.1.1 掃描二維碼 575
19.1.2 掃描識別文本 578
19.1.3 識別圖像中的文檔 582
19.2 人臉識別 583
19.2.1 人臉檢測 584
19.2.2 人臉比對 585
19.2.3 活體檢測 588
19.3 人像進階 590
19.3.1 人像摳圖 590
19.3.2 背景替換 592
19.3.3 笑臉捕捉 594
19.4 實戰項目:尋人神器之智慧天眼 596
19.4.1 需求描述 597
19.4.2 功能分析 598
19.4.3 效果展示 599
19.5 小結 601
19.6 動手練習 601
第20章 在線直播 602
20.1 搭建WebRTC的服務端 602
20.1.1 WebRTC的系統架構 602
20.1.2 搭建信令服務器 604
20.1.3 搭建穿透服務器 606
20.2 給App集成WebRTC 608
20.2.1 引入WebRTC開源庫 608
20.2.2 實現WebRTC的發起方 611
20.2.3 實現WebRTC的接收方 614
20.3 實戰項目:仿微信的視頻通話 616
20.3.1 需求描述 616
20.3.2 功能分析 617
20.3.3 效果展示 621
20.4 實戰項目:仿拼多多的直播帶貨 621
20.4.1 需求描述 622
20.4.2 功能分析 622
20.4.3 效果展示 627
20.5 小結 629
20.6 動手練習 629
附錄A 移動互聯網行業的新技術
發展簡表 630
附錄B Android各版本的新增
功能簡表 632
附錄C Android常用開發庫說明簡表 634
附錄D 移動開發專業術語索引 636
附錄E 本書的服務端程序說明 639