內容簡介
本書介紹OpenHarmony操作系統移動應用開發的必備知識,既包含基礎的移動應用結構剖析,也涉及目前流行的終端設備AI模型的使用。本書強調理論和實踐相結合,提供豐富的代碼示例,方便讀者理解和運用移動應用開發的知識。
本書講解了 OpenHarmony 的系統特性、應用開發流程和開發工具、應用組成和配置,以及應用模型、ArkTS語法、基於ArkTS框架的UI設計與開發、數據持久化、傳感器應用和媒體管理、網絡訪問與多線程等傳統移動開發內容。此外,還介紹了OpenHarmony應用獨有的流轉架構和原子化服務等。最後以一個實用性較強的健康生活應用為例,介紹如何從需求分析入手,進行概要設計和詳細設計,並最終完成代碼開發。本書貫徹軟件工程思想,通過工程化理念來指導移動應用開發。本書除第13章,其他章 都設計了課後習題,希望能通過練習和操作實踐幫助讀者鞏固所學知識。
本書既可以作為本科院校和高職高專院校計算機相關專業移動應用開發課程的教材,也可以作為對OpenHarmony應用開發感興趣的IT從業人員的自學用書。
目錄
第 1章 初識OpenHarmony 1
1 1 全球智能終端的發展 1
1 2 我國移動操作系統的機遇與挑戰 2
1 3 OpenHarmony概述 2
1 4 OpenHarmony技術架構 2
1 4 1 內核層 3
1 4 2 系統服務層 4
1 4 3 框架層 4
1 4 4 應用層 4
1 5 OpenHarmony技術特性 4
1 5 1 硬件互助,資源共享 5
1 5 2 一次開發,多端部署 8
1 5 3 統一OS,彈性部署 9
1 6 OpenHarmony安全特性 9
本章 小結 10
課後習題 10
第 2章 開發你的第 一行OpenHarmony代碼 11
2 1 移動應用的組成 11
2 2 移動應用的開發和運行 12
2 3 移動應用的部署 13
2 4 DevEco Studio特性概述 14
2 4 1 核心特色 15
2 4 2 開發流程 15
2 5 搭建開發環境 16
2 5 1 安裝軟件並配置開發環境 17
2 5 2 創建並運行HelloWorld工程 19
2 6 開發低代碼模式應用 21
2 6 1 低代碼開發界面簡介 21
2 6 2 使用低代碼開發界面 22
2 6 3 案例——花朵展示列表應用 23
2 7 編譯構建Hvigor 27
2 7 1 Hvigor簡介 28
2 7 2 OpenHarmony應用中的Hvigor 29
2 8 應用運行調試 32
本章 小結 36
課後習題 36
第3章 OpenHarmony應用結構剖析 37
3 1 app的概念和HAP模塊的組成 37
3 1 1 應用包結構 38
3 1 2 HAP模塊結構 39
3 2 創建和使用共享包 39
3 2 1 創建HAR庫模塊 40
3 2 2 編譯HAR庫文件 41
3 2 3 為應用添加HAR依賴 41
3 2 4 創建和使用HSP庫模塊 42
3 3 資源限定與訪問 43
3 3 1 資源分類 44
3 3 2 限定詞
目錄命名規則 45
3 3 3 限定詞
目錄 46
3 3 4 資源組
目錄 46
3 3 5 資源文件的建立及訪問 47
3 4 配置文件 49
3 4 1 配置文件的內部結構 49
3 4 2 app標簽的內部結構 50
3 4 3 module標簽的內部結構 51
3 4 4 abilities標簽的內部結構 54
3 4 5 module內其他標簽的內部結構 57
本章 小結 61
課後習題 61
第4章 OpenHarmony應用模型 62
4 1 應用模型概述 62
4 1 1 應用模型的組成 62
4 1 2 從FA模型到Stage模型 63
4 1 3 Stage模型和FA模型的對比 63
4 2 Stage模型 64
4 2 1 Stage模型應用組件簡介 64
4 2 2 Stage模型核心組件關係 65
4 2 3 Stage應用/組件配置 67
4 3 UIAbility組件 69
4 3 1 UIAbility配置 69
4 3 2 UIAbility生命週期及回調 70
4 3 3 啟動模式 73
4 3 4 基本用法 76
4 3 5 與UI的交互 77
4 4 Stage模型頁面導航 80
4 4 1 Context 80
4 4 2 Want 81
4 4 3 顯式Want 82
4 4 4 隱式Want 82
4 4 5 常見的action與entities 83
4 4 6 UIAbility間數據傳遞 85
4 4 7 導航至UIAbility指定頁面 88
4 4 8 任務管理 91
4 5 ExtensionAbility組件 93
4 6 ServiceExtensionAbility組件 95
4 6 1 ServiceExtensionAbility生命週期 95
4 6 2 實現後臺服務 96
4 6 3 啟動後臺服務 98
4 6 4 連接後臺服務 99
4 6 5 客戶端與服務端通信 100
4 6 6 獲取後臺天氣數據示例 101
4 7 Stage模型中的進程模型 105
本章 小結 106
課後習題 107
第5章 ArkTS語法 108
5 1 ArkTS基本語法 108
5 1 1 基本語法簡介 109
5 1 2 變量、常量和基本類型 109
5 1 3 控制流 111
5 1 4 函數 112
5 1 5 類 114
5 1 6 接口 119
5 1 7 泛型類和函數 120
5 1 8 空安全 121
5 1 9 模塊 122
5 2 ArkUI支持 123
5 2 1 ArkUI支持描述 123
5 2 2 聲明式UI描述 124
5 2 3 創建自定義組件 126
5 2 4 頁面和自定義組件生命週期 130
5 2 5 自定義構建函數 135
5 2 6 組件樣式複用及擴展 137
5 3 狀態管理 140
5 3 1 狀態管理簡介 140
5 3 2 管理組件的狀態 143
5 3 3 管理應用的狀態 149
5 4 渲染控制 155
5 4 1 if/else條件渲染 155
5 4 2 ForEach循環渲染 157
5 5 ArkTS語言基礎類庫 158
5 5 1 併發 159
5 5 2 容器類庫 162
5 5 3 XML生成與解析 164
5 6 ArkTS開發實戰 165
5 6 1 界面的設計與實現 166
5 6 2 配置屬性與佈局 167
5 6 3 改變組件狀態 167
5 6 4 循環渲染列表數據 169
本章 小結 171
課後習題 171
第6章 ArkUI設計與開發 172
6 1 ArkUI框架基礎 172
6 2 組件通用特性 173
6 2 1 組件通用樣式 173
6 2 2 組件通用事件——點擊、觸摸和拖曳 175
6 3 構建複雜的交互界面 177
6 3 1 佈局構建 177
6 3 2 基礎組件和容器組件的關係 178
6 3 3 添加標題區和文本區 178
6 3 4 添加圖片區 181
6 3 5 添加評論區 182
6 4 容器組件 183
6 4 1 List組件 184
6 4 2 Tabs組件 185
6 4 3 Grid組件 190
6 4 4 Swiper組件 192
6 4 5 Stack組件 194
6 5 ArkUI其他必要功能 196
6 5 1 頁面路由 196
6 5 2 組件導航 200
6 5 3 消息彈窗 203
6 5 4 日誌輸出 205
6 5 5 自定義圖形繪製 206
6 5 6 動畫 207
6 6 購物車應用開發 211
6 6 1 一次開發,多端部署 211
6 6 2 首頁標簽頁 217
6 6 3 詳情頁設計 224
本章 小結 232
課後習題 232
第7章 OpenHarmony數據持久化 233
7 1 數據持久化定義 233
7 2 DataShareExtensionAbility的使用 233
7 2 1 統一資源標識符 234
7 2 2 創建DataShareAbility 234
7 2 3 註冊DataShareAbility 237
7 2 4 訪問DataShareAbility 237
7 3 文件存儲 238
7 3 1 應用文件 239
7 3 2 用戶文件 244
7 4 關係數據庫操作 246
7 4 1 關鍵術語 246
7 4 2 工作原理 247
7 4 3 數據庫操作流程 247
7 4 4 創建數據庫 248
7 4 5 數據插入 248
7 4 6 數據查詢 250
7 5 用戶偏好文件操作 251
7 5 1 工作原理 251
7 5 2 數據讀寫 252
7 6 分布式數據服務 256
7 6 1 關鍵術語 256
7 6 2 核心組件 257
7 6 3 工作原理 258
7 6 4 分布式數據訪問 259
7 7 分布式文件系統 264
7 7 1 工作原理 264
7 7 2 分布式文件讀寫 266
本章 小結 269
課後習題 269
第8章 OpenHarmony流轉架構剖析 270
8 1 流轉的核心概念 270
8 2 流轉架構 272
8 2 1 核心組件 272
8 2 2 關鍵流程 273
8 3 跨端遷移功能開發 274
8 3 1 跨端遷移核心方法 274
8 3 2 跨端遷移實戰開發 275
8 4 多端協同功能開發 276
8 4 1 多端協同場景分類 276
8 4 2 分布式音樂播放器界面設計 279
8 4 3 多端協同權限申請 281
8 4 4 設備連接 282
8 4 5 數據恢復 284
本章 小結 287
課後習題 287
第9章 OpenHarmony傳感器應用和媒體管理 288
9 1 主流傳感器分類 288
9 2 傳感器工作原理 289
9 3 加速度傳感器調用 291
9 4 相機調用 293
9 4 1 相機開發模型 293
9 4 2 權限申請 294
9 4 3 設備輸入 294
9 4 4 會話獲取 295
9 4 5 預覽 297
9 4 6 照相 298
9 5 媒體訪問和播放 300
9 5 1 音視頻處理概述 301
9 5 2 核心接口AVPlayer和AVRecorder 302
9 5 3 音頻播放 304
9 5 4 視頻播放 308
9 6 位置傳感器調用 312
9 6 1 基本概念 312
9 6 2 運作機