鴻蒙之光HarmonyOS 6應用開發入門
柳偉衛
- 出版商: 清華大學
- 出版日期: 2026-01-01
- 售價: $594
- 語言: 簡體中文
- ISBN: 7302705623
- ISBN-13: 9787302705628
-
相關分類:
Cross-Platform
下單後立即進貨 (約4週~6週)
相關主題
商品描述
作者簡介
目錄大綱
目 錄
第 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



