Android Studio 開發實戰:從零基礎到 App 上線, 3/e

歐陽燊

  • 出版商: 清華大學
  • 出版日期: 2022-10-01
  • 售價: $893
  • 貴賓價: 9.5$848
  • 語言: 簡體中文
  • 頁數: 640
  • ISBN: 7302617821
  • ISBN-13: 9787302617822
  • 相關分類: Android
  • 立即出貨

  • Android Studio 開發實戰:從零基礎到 App 上線, 3/e-preview-1
  • Android Studio 開發實戰:從零基礎到 App 上線, 3/e-preview-2
  • Android Studio 開發實戰:從零基礎到 App 上線, 3/e-preview-3
Android Studio 開發實戰:從零基礎到 App 上線, 3/e-preview-1

買這商品的人也買了...

商品描述

本書是一部Android開發的實戰教程,由淺入深、由基礎到高級,帶領讀者一步一步走進App開發的神奇世界。全書共分為20章。其中,前10章是基礎部分,主要講解Android Studio的環境搭建、App開發的各種常用控件、App開發的四大組件、App的數據存儲方式、如何打造App的安裝包;後10章是進階部分,主要講解App開發的事件交互、動畫特效、網絡通信、多媒體、手機閱讀、感知定位、物聯網、智能語音、機器視覺、在線直播等。書中在講解知識點的同時給出了大量實戰範例,方便讀者迅速將所學的知識運用到實際開發中。通過本書的學習,讀者不僅能夠掌握3類主流App的基本開發技術,包括購物App(電子商務)、聊天App(即時通信)、娛樂App(短視頻分享),還能夠學會開發一些趣味應用,包括計算器、記賬本、摳圖工具、動感影集、電子閱讀、附近交友、遙控小車、語音問答、人臉識別、視頻通話等。 本書適用於Android開發的廣大從業者、有志於轉型App開發的程序員、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