鴻蒙之光HarmonyOS 6應用開發入門

柳偉衛

  • 出版商: 清華大學
  • 出版日期: 2026-01-01
  • 售價: $594
  • 語言: 簡體中文
  • ISBN: 7302705623
  • ISBN-13: 9787302705628
  • 相關分類: Cross-Platform
  • 下單後立即進貨 (約4週~6週)

  • 鴻蒙之光HarmonyOS 6應用開發入門-preview-1
  • 鴻蒙之光HarmonyOS 6應用開發入門-preview-2
  • 鴻蒙之光HarmonyOS 6應用開發入門-preview-3
鴻蒙之光HarmonyOS 6應用開發入門-preview-1

相關主題

商品描述

"《鴻蒙之光HarmonyOS 6應用開發入門》以HarmonyOS 6版本為核心,從基礎知識到實戰案例,引領讀者逐步探索“純血鴻蒙”原生開發的奧秘。本書共分18章,內容涵蓋HarmonyOS架構、DevEco Studio使用、應用結構解析、ArkTS編程語言、Ability組件、ArkUI開發、公共事件處理、窗口管理、網絡編程、安全管理、數據管理、多媒體開發、多端部署、應用測試及AI能力等關鍵主題。書中不僅詳細闡述了相關理論知識,還結合了多個實戰項目,如計算器開發、WeLink打卡系統、圖片輪播播放器、購物車功能實現、錄音機與音樂播放器創建、視頻AI字幕與語音識別功能實現、購物應用設計與微信應用模擬、圖片查看器構建、AI掃描應用開發等,旨在通過實際操作提升讀者的動手能力和解決實際問題的能力。 此外,《鴻蒙之光HarmonyOS 6應用開發入門》還附贈完整的源碼和PPT課件,所有源碼均經過嚴格測試驗證,確保能夠順利運行並達到預期效果。 《鴻蒙之光HarmonyOS 6應用開發入門》技術新穎,案例豐富,突出實戰,特別適合作為HarmonyOS應用開發初學者、愛好者和進階者的自學用書,也適合作為培訓機構和大中專院校的教學用書。"

作者簡介

"柳偉衛,網名老衛、WayLau,在IT公司擔任過項目經理、架構師、高級技術顧問等,擁有十余年軟件開發管理及系統架構經驗。主導過多個省、國家級大型分布式系統的設計與研發,參與過面向全球的供應鏈系統服務化改造項目,在實際工作中,累積了豐富的分布式系統、微服務架構以及性能調優的實戰經驗。業余時間創立了waylau.com網站,用於分享個人技術心得。長期活躍於各大開源社區,編寫了包括《跟老衛學HarmonyOS開發》《Netty 實戰(精髓)》在內的30余本開源技術教程,是CSDN、開源中國、阿裏雲開發者、華為開發者等技術社區的專家,並在慕課網、華為開發者聯盟社區擔任認證講師。已出版《循序漸進Spark大數據應用開發》《分布式系統常用技術及案例分析》《Netty原理解析與開發實戰》等幾十本技術書籍。"

目錄大綱

目    錄

第 1 章  初識HarmonyOS 1

1.1  HarmonyOS產生的背景 1

1.1.1  萬物互聯時代的新挑戰 1

1.1.2  什麼是HarmonyOS 2

1.1.3  HarmonyOS應用開發 3

1.2  HarmonyOS核心技術理念 3

1.2.1  一次開發,多端部署 4

1.2.2  可分可合,自由流轉 6

1.2.3  統一生態,系統智能 7

1.3  HarmonyOS新特性 8

1.3.1  Stage模型 9

1.3.2  UIAbility組件的生命周期 9

1.3.3  ArkUI開發框架 10

1.3.4  ArkTS編程語言 11

1.3.5  ArkWeb 11

1.3.6  “純血鴻蒙”解讀 11

1.3.7  在AI方面的增強 12

1.4  DevEco Studio的安裝 13

1.4.1  下載DevEco Studio 13

1.4.2  安裝DevEco Studio 13

1.4.3  配置DevEco Studio 13

1.4.4  創建虛擬機 15

1.4.5  使用AI輔助編程作為你的開發導師 19

1.5  實戰:創建第一個HarmonyOS應用 20

1.5.1  選擇創建新項目 20

1.5.2  選擇模板 21

1.5.3  配置項目信息 22

1.5.4  自動生成工程代碼 22

1.5.5  預覽項目 23

1.5.6  運行項目 24

1.6  應用工程結構介紹 24

1.6.1  App包結構 24

1.6.2  工程級目錄 25

1.6.3  entry模塊級目錄 25

1.6.4  配置文件 26

1.7  本章小結 29

1.8  上機練習:開發第一個HarmonyOS應用——Hello World 29

第 2 章  ArkTS語言基礎 30

2.1  基本知識 30

2.1.1  聲明 30

2.1.2  類型 31

2.1.3  運算符 33

2.1.4  語句 35

2.2  函數 39

2.2.1  函數聲明 39

2.2.2  可選參數 39

2.2.3  rest參數 39

2.2.4  返回類型 40

2.2.5  函數的作用域 40

2.2.6  函數調用 40

2.2.7  函數類型 40

2.2.8  箭頭函數 40

2.2.9  閉包 41

2.2.10  函數重載 41

2.3  類 41

2.3.1  字段 42

2.3.2  方法 44

2.3.3  構造函數 47

2.3.4  可見性修飾符 47

2.3.5  對象字面量 48

2.3.6  Record類型的對象字面量 49

2.4  接口 49

2.4.1  接口屬性 50

2.4.2  接口繼承 50

2.5  泛型類型 51

2.5.1  泛型類和泛型接口 51

2.5.2  泛型約束 51

2.5.3  泛型函數 51

2.5.4  泛型默認值 52

2.6  空安全 52

2.6.1  非空斷言運算符 53

2.6.2  空值合並運算符 53

2.6.3  可選鏈 53

2.7  模塊 54

2.7.1  導出 54

2.7.2  導入 54

2.7.3  頂層語句 56

2.8  本章小結 56

2.9  上機練習:統計字符串中的字符數 56

第 3 章  Ability開發 57

3.1  Ability概述 57

3.1.1  單Ability應用和多Ability應用 57

3.1.2  HarmonyOS應用模型 58

3.2  FA模型介紹 58

3.2.1  FA模型中的Ability 58

3.2.2  FA模型的生命周期 59

3.2.3  FA模型的進程/線程模型 59

3.3  Stage模型介紹 60

3.3.1  Stage模型的設計思想 60

3.3.2  Stage模型的基本概念 61

3.4  UIAbility介紹 62

3.4.1  UIAbility的生命周期 62

3.4.2  UIAbility的啟動模式 62

3.4.3  UIAbility組件的基本用法 63

3.5  Want概述 66

3.5.1  Want的用途 66

3.5.2  Want的類型 66

3.5.3  Want的參數及屬性 67

3.6  實戰:顯式Want啟動Ability 68

3.6.1  新建Ability內頁面 68

3.6.2  新建Ability 69

3.6.3  使用顯式Want啟動Ability 70

3.6.4  運行 70

3.7  本章小結 71

3.8  上機練習:啟動系統設置 71

第 4 章  ArkUI基礎開發 72

4.1  ArkUI概述 72

4.1.1  ArkUI基本概念 72

4.1.2  ArkUI主要特征 73

4.1.3  JS、TS、ArkTS、ArkUI、ArkCompiler之間的聯系 73

4.2  聲明式開發範式 75

4.2.1  聲明式開發範式與類Web開發範式 75

4.2.2  聲明式開發範式的基礎能力 75

4.2.3  聲明式開發範式的整體架構 75

4.2.4  聲明式開發範式的基本組成 76

4.3  常用組件 77

4.4  基礎組件詳解 77

4.4.1  Blank 78

4.4.2  Button 78

4.4.3  Checkbox 79

4.4.4  CheckboxGroup 80

4.4.5  DataPanel 81

4.4.6  DatePicker 81

4.4.7  Divider 82

4.4.8  Gauge 83

4.4.9  Image 84

4.4.10  ImageAnimator 86

4.4.11  LoadingProgress 88

4.4.12  Marquee 88

4.4.13  Navigation 89

4.4.14  PatternLock 89

4.4.15  Progress 90

4.4.16  QRCode 91

4.4.17  Radio 91

4.4.18  Rating 91

4.4.19  RichText 92

4.4.20  ScrollBar 92

4.4.21  Search 93

4.4.22  Select 94

4.4.23  Slider 94

4.4.24  Span 95

4.4.25  Stepper與StepperItem 96

4.4.26  Text 97

4.4.27  TextArea 99

4.4.28  TextClock 100

4.4.29  TextInput 100

4.4.30  TextPicker 101

4.4.31  TextTimer 102

4.4.32  TimePicker 103

4.4.33  Toggle 103

4.4.34  Web 104

4.4.35  SymbolGlyph 104

4.5  本章小結 106

4.6  上機練習:實現高仿WeLink打卡應用 106

第 5 章  ArkUI高級開發 108

5.1  渲染控制 108

5.1.1  if/else條件渲染 108

5.1.2  ForEach循環渲染 109

5.2  容器組件詳解 111

5.2.1  Column和Row 111

5.2.2  ColumnSplit和RowSplit 112

5.2.3  Flex 113

5.2.4  Grid和GridItem 114

5.2.5  GridRow和GridCol 115

5.2.6  List、ListItem和ListItemGroup 116

5.2.7  AlphabetIndexer 117

5.2.8  Badge 119

5.2.9  Counter 120

5.2.10  Navigator 121

5.2.11  Refresh 123

5.2.12  RelativeContainer 124

5.2.13  Scroll 125

5.2.14  SideBarContainer 126

5.2.15  Stack 127

5.2.16  Swiper 127

5.2.17  Tabs和TabContent 128

5.3  媒體組件詳解 129

5.4  繪制組件詳解 132

5.4.1  Circle和Ellipse 132

5.4.2  Line 133

5.4.3  Polyline 134

5.4.4  Polygon 135

5.4.5  Path 136

5.4.6  Rect 138

5.4.7  Shape 139

5.5  畫布組件詳解 141

5.6  常用布局 143

5.6.1  自適應布局 143

5.6.2  響應式布局 144

5.7  實戰:使用ArkUI實現“登錄”界面 144

5.7.1  使用Column容器實現整體布局 145

5.7.2  使用Image組件實現標誌展示 145

5.7.3  使用TextInput組件實現賬號和密碼的輸入 145

5.7.4  使用Button組件實現“登錄”按鈕 146

5.7.5  使用Text組件實現“註冊”按鈕 146

5.7.6  完整代碼 146

5.8  實戰:使用ArkUI實現“計算器”應用 147

5.8.1  新增Calculator.ets的文件 147

5.8.2  實現遞歸運算 148

5.8.3  實現將輸入字符串轉為字符串數組 149

5.8.4  新增CalculatorButtonInfo.ets文件 150

5.8.5  實現CalculatorButton組件 150

5.8.6  構造整體頁面 151

5.8.7  運行 152

5.9  本章小結 152

5.10  上機練習:實現圖片輪播播放器應用 153

第 6 章  公共事件 154

6.1  公共事件概述 154

6.1.1  公共事件的分類 154

6.1.2  公共事件的開發 155

6.2  實戰:訂閱、發布、取消公共事件 156

6.2.1  添加按鈕 156

6.2.2  添加Text組件顯示接收的事件 157

6.2.3  設置按鈕的單擊事件方法 157

6.2.4  運行 158

6.3  Emitter概述 159

6.3.1  訂閱 159

6.3.2  取消訂閱 159

6.3.3  發送事件 160

6.4  實戰:使用Emitter進行線程間通信 160

6.4.1  添加按鈕 160

6.4.2  添加Text組件顯示接收的事件 160

6.4.3  設置按鈕的單擊事件方法 161

6.4.4  運行 161

6.5  本章小結 162

6.6  上機練習:實現購物車應用 162

第 7 章  窗口管理 164

7.1  窗口開發概述 164

7.1.1  窗口的分類 164

7.1.2  窗口模塊的用途 164

7.1.3  窗口沈浸式能力 165

7.1.4  應用窗口模式 165

7.2  窗口管理 166

7.2.1  設置應用主窗口屬性及目標頁面 166

7.2.2  設置應用子窗口屬性及目標頁面 166

7.2.3  體驗窗口沈浸式能力 166

7.2.4  設置懸浮窗 167

7.2.5  監聽窗口不可交互與可交互事件 167

7.3  實戰:實現窗口沈浸式效果 168

7.3.1  獲取應用主窗口 168

7.3.2  實現沈浸式效果 168

7.3.3  運行 169

7.4  智慧多窗 170

7.4.1  懸浮窗 170

7.4.2  分屏 172

7.5  本章小結 173

7.6  上機練習:創建子窗口 173

第 8 章  網絡編程 174

8.1  HTTP數據請求概述 174

8.1.1  HTTP請求方法 174

8.1.2  HTTP狀態碼 175

8.2  實戰:通過HTTP請求數據 175

8.2.1  準備一個HTTP服務接口 175

8.2.2  使用Button組件來觸發單擊 175

8.2.3  發起HTTP請求 176

8.2.4  增加權限 177

8.2.5  運行 177

8.3  Web組件概述 177

8.3.1  加載本地網頁 177

8.3.2  加載在線網頁 178

8.3.3  隱私模式加載在線網頁 178

8.3.4  網頁縮放 178

8.3.5  文本縮放 179

8.3.6  Web組件事件 179

8.3.7  Web和JavaScript交互 179

8.3.8  處理頁面導航 183

8.4  實戰:Web組件加載在線網頁 183

8.4.1  準備一個在線網頁地址 183

8.4.2  聲明網絡訪問權限 184

8.4.3  發起HTTP請求 184

8.4.4  運行 184

8.5  本章小結 184

8.6  上機練習:實現一個使用Web組件展示HTML頁面的應用 185

第 9 章  安全管理 186

9.1  訪問控制概述 186

9.1.1  權限包含的基本概念 186

9.1.2  權限等級說明 187

9.1.3  權限類型 188

9.1.4  權限列表 188

9.2  訪問控制開發步驟 195

9.2.1  權限申請流程 195

9.2.2  權限申請 195

9.2.3  授權 196

9.3  實戰:訪問控制授權 196

9.3.1  場景介紹 196

9.3.2  聲明訪問的權限 197

9.3.3  申請授予user_grant權限 197

9.3.4  運行 199

9.4  本章小結 199

9.5  上機練習:使用麥克風 199

第 10 章  數據管理 200

10.1  分布式數據服務概述 200

10.1.1  分布式數據服務的基本概念 200

10.1.2  分布式數據服務運作機制 202

10.1.3  分布式數據服務的約束與限制 203

10.2  分布式數據服務開發步驟 203

10.2.1  導入模塊 204

10.2.2  構造分布式數據庫管理類實例 204

10.2.3  獲取/創建分布式數據庫 204

10.2.4  訂閱分布式數據庫的數據變化 205

10.2.5  將數據寫入分布式數據庫 205

10.2.6  查詢分布式數據庫數據 206

10.3  關系數據庫概述 206

10.3.1  關系數據庫的基本概念 206

10.3.2  運作機制 207

10.3.3  默認配置與限制 207

10.4  實戰:關系數據庫開發 207

10.4.1  操作RdbStore 207

10.4.2  賬目信息的表示 210

10.4.3  操作賬目信息表 211

10.4.4  設計界面 212

10.4.5  運行 214

10.5  用戶首選項概述 214

10.5.1  用戶首選項運作機制 215

10.5.2  約束與限制 215

10.6  實戰:用戶首選項開發 216

10.6.1  操作Preferences 216

10.6.2  賬目信息的表示 217

10.6.3  設計界面 218

10.6.4  運行 219

10.7  本章小結 220

10.8  上機練習:使用分布式數據服務 220

第 11 章  多媒體開發 222

11.1  音頻開發 222

11.1.1  音頻開發的基本概念 222

11.1.2  音頻播放開發指導 222

11.1.3  如何選擇音頻播放開發方式 224

11.1.4  AudioRenderer開發 224

11.1.5  如何選擇音頻錄制開發方式 226

11.1.6  AudioCapturer開發 226

11.2  圖片開發 228

11.2.1  圖片開發的基本概念 228

11.2.2  圖片開發的主要流程 228

11.2.3  圖片解碼 229

11.2.4  圖像變換 231

11.2.5  位圖操作 234

11.2.6  圖片編碼 236

11.2.7  圖片工具 236

11.3  視頻開發 237

11.3.1  視頻開發指導 237

11.3.2  視頻開發步驟 238

11.4  實戰:實現音樂播放器 243

11.4.1  獲取本地音樂 243

11.4.2  音樂播放控制 244

11.4.3  創建播放器界面 245

11.4.4  運行 246

11.5  本章小結 247

11.6  上機練習:實現錄音機應用 247

第 12 章  一次開發,多端部署 248

12.1  “一多”簡介 248

12.1.1  背景 248

12.1.2  定義及目標 248

12.1.3  基礎知識 249

12.2  布局能力 250

12.2.1  自適應布局 251

12.2.2  響應式布局 251

12.3  實戰:圖片查看器的一多UI原型設計 252

12.3.1  UX設計 252

12.3.2  計算設備的類型 254

12.3.3  實現頂部區域UI原型 255

12.3.4  實現中部圖片顯示區UI原型 256

12.3.5  實現圖片預覽列表UI原型 256

12.3.6  實現操作欄UI原型 257

12.4  本章小結 258

12.5  上機練習:實現圖片查看器UI原型 258

第 13 章  應用測試 259

13.1  應用測試概述 259

13.2  單元測試 259

13.2.1  單元測試框架功能特性 259

13.2.2  基礎流程 260

13.2.3  斷言庫 261

13.2.4  自定義斷言 264

13.3  UI測試 265

13.3.1  UI測試框架的功能特性 265

13.3.2  Driver類使用說明 266

13.3.3  On類使用說明 267

13.3.4  Component類使用說明 268

13.3.5  UiWindow類使用說明 268

13.4  實戰:UI測試 269

13.4.1  編寫UI測試腳本 269

13.4.2  運行UI測試腳本 270

13.5  本章小結 272

13.6  上機練習:“統計字符串的字符數”的UI測試 272

第 14 章  AI能力 273

14.1  HarmonyOS AI能力概述 273

14.1.1  核心AI框架:鴻蒙智能體框架 273

14.1.2  關鍵AI能力套件:覆蓋“感知?理解?推理?執行”全鏈路 274

14.1.3  技術支撐:端側AI與安全防護雙保障 274

14.2  智能體框架服務 275

14.2.1  場景介紹 275

14.2.2  開發步驟 276

14.3  基礎語音服務 278

14.3.1  場景介紹 278

14.3.2  文本轉語音開發步驟 278

14.3.3  語音識別開發步驟 282

14.4  基礎視覺服務 284

14.4.1  場景介紹 285

14.4.2  通用文字識別開發步驟 285

14.5  自然語言理解服務 287

14.5.1  分詞開發步驟 287

14.5.2  實體抽取開發步驟 290

14.6  場景化語音服務 291

14.6.1  朗讀控件開發步驟 292

14.6.2  AI字幕控件開發步驟 297

14.7  場景化視覺服務 300

14.7.1  人臉活體檢測開發步驟 300

14.7.2  卡證識別開發步驟 303

14.7.3  文檔掃描開發步驟 304

14.7.4  AI識圖開發步驟 305

14.8  實戰:實現視頻AI字幕的開發 306

14.8.1  接口說明 306

14.8.2  實現步驟 306

14.9  本章小結 308

14.10  上機練習:實現一個語音識別應用 308

第 15 章  綜合實戰(1):仿微信應用 310

15.1  仿微信應用概述 310

15.1.1  “微信”頁面 310

15.1.2  “聯系人”頁面 310

15.1.3  “發現”頁面 311

15.1.4  “我”頁面 312

15.2  實戰:“微信”頁面 312

15.2.1  創建“微信”頁面ChatPage 312

15.2.2  定義聯系人Person 313

15.2.3  定義聯系人數據 313

15.2.4  定義樣式 314

15.3  實戰:“聯系人”頁面 315

15.3.1  創建“聯系人”頁面ContactPage 315

15.3.2  定義樣式 316

15.4  實戰:“發現”頁面 317

15.4.1  創建“發現”頁面DiscoveryPage 317

15.4.2  定義樣式 318

15.5  實戰:“我”頁面 319

15.6  實戰:組裝所有頁面 320

15.6.1  Tabs組件作為導航欄 320

15.6.2  Swiper組件實現頁面滑動 321

15.7  本章小結 322

15.8  上機練習:實現一個仿微信頁面效果的應用 322

第 16 章  綜合實戰(2):一多圖片查看器 323

16.1  UX設計 323

16.2  架構設計 324

16.2.1  模塊的依賴關系 325

16.2.2  修改Module類型及其設備類型 326

16.3  pictureView模塊實現 327

16.3.1  實現頂部區域 327

16.3.2  實現中部圖片顯示區 328

16.3.3  實現圖片預覽列表 329

16.3.4  實現底部區域操作欄 330

16.3.5  尺寸適配 332

16.3.6  常量和接口 332

16.4  base模塊實現 334

16.4.1  基礎常量類 334

16.4.2  設備類型常量類 335

16.4.3  設備尺寸類型 335

16.5  default模塊實現 336

16.5.1  圖片查看器主頁 336

16.5.2  計算設備的類型 336

16.6  本章小結 337

16.7  上機練習:圖片查看器 337

第 17 章  綜合實戰(3):購物應用 338

17.1  購物應用概述 338

17.1.1  購物應用功能 338

17.1.2  購物應用效果展示 338

17.2  實戰:實現商品列表頁簽 339

17.2.1  應用首頁 340

17.2.2  創建模型 340

17.2.3  創建組件 346

17.3  實戰:實現購物車頁簽 349

17.3.1  創建一個頁面 349

17.3.2  創建組件 349

17.4  實戰:實現“我的”頁簽 351

17.4.1  創建一個頁面 352

17.4.2  創建組件 352

17.5  實戰:商品詳情頁面 355

17.5.1  創建一個頁面 355

17.5.2  創建組件 356

17.5.3  設置路由 360

17.6  本章小結 361

17.7  上機練習:實現一個購物應用 361

第 18 章  綜合實戰(4):AI掃描應用 362

18.1  AI掃描應用概述 362

18.1.1  AI掃描應用功能 362

18.1.2  AI掃描應用效果展示 362

18.2  實戰:實現應用主頁面 363

18.2.1  應用首頁 363

18.2.2  設置路由 365

18.3  實戰:實現身份證識別功能 366

18.3.1  創建一個頁面 366

18.3.2  添加相關依賴 367

18.3.3  添加身份證識別控件 367

18.3.4  運行調測 368

18.4  實戰:實現銀行卡識別功能 369

18.4.1  創建一個頁面 369

18.4.2  添加相關依賴 370

18.4.3  添加銀行卡識別控件 370

18.4.4  運行調測 372

18.5  實戰:實現文檔掃描功能 372

18.5.1  創建一個頁面 372

18.5.2  添加相關依賴 373

18.5.3  添加文檔掃描控件 373

18.5.4  運行調測 375

18.6  本章小結 376

18.7  上機練習:AI掃描應用 376

附錄  模擬器與真機的差異 377

參考文獻 380