移動應用開發(fā)技術——基于OpenHarmony平臺
定 價:119.8 元
叢書名:新一代信息技術系列
讀者對象:本書適用于本科院校和高職高專院校計算機相關專業(yè)學生
本書介紹OpenHarmony操作系統(tǒng)移動應用開發(fā)的知識,既包含基礎的移動應用結構剖析,也涉及目前流行的終端設備AI模型的使用。本書強調理論和實踐相結合,提供豐富的代碼示例,方便讀者理解和運用移動應用開發(fā)的知識。 本書講解了 OpenHarmony 的系統(tǒng)特性、應用開發(fā)流程和開發(fā)工具、應用組成和配置,以及應用模型、ArkTS語法、基于ArkTS框架的UI設計與開發(fā)、數(shù)據(jù)持久化、傳感器應用和媒體管理、網絡訪問與多線程等傳統(tǒng)移動開發(fā)內容。此外,還介紹了OpenHarmony應用獨有的流轉架構和原子化服務等。最后以一個實用性較強的健康生活應用為例,介紹如何從需求分析入手,進行概要設計和詳細設計,并最終完成代碼開發(fā)。本書貫徹軟件工程思想,通過工程化理念來指導移動應用開發(fā)。本書除第13章,其他章都設計了課后習題,希望能通過練習和操作實踐幫助讀者鞏固所學知識。 本書既可以作為本科院校和高職高專院校計算機相關專業(yè)移動應用開發(fā)課程的教材,也可以作為對OpenHarmony應用開發(fā)感興趣的IT從業(yè)人員的自學用書。
(1)華為的鴻蒙操作系統(tǒng)發(fā)展非常迅速,在鴻蒙生態(tài)的構建上,華為投入大量的資源,也獲得大量生態(tài)合作伙伴的支持。因此,大量學生和工程師都需要學習鴻蒙操作系統(tǒng)的相關知識。 (2)本書基于華為OpenHarmony最新的3.2版本,通過與華為鴻蒙一線研發(fā)人員和鴻蒙HCIA認證開發(fā)工程師的合作,內容上體現(xiàn)華為官方認證的鴻蒙應用開發(fā)最新和最穩(wěn)定特性,具備前瞻性、穩(wěn)定性和權威性。 (3)作者為武漢大學計算機學院軟件工程系副教授,全國高校首門鴻蒙應用開發(fā)課程主講人,華為HDE(Huawei Developer Expert)專家,連續(xù)兩年獲得華為高校鴻蒙人才生態(tài)春雨獎。在鴻蒙操作系統(tǒng)的使用和開發(fā)方面具有豐富經驗。
趙小剛 武漢大學計算機學院軟件工程系副主任,副教授。武大-華為OpenHarmony創(chuàng)新實踐基地主要責任人。主持產學合作協(xié)同育人項目4項,主持和參與多項國家自然科學基金與湖北省自然科學基金項目,主持武漢大學校級教改項目2項。擔任武漢大學計算機學院移動編程技術課程組長10余年。在全國高校中首次開設HarmonyOS稱動編程技術課程,主編和參編HarmonyOS移動編程教材2部、數(shù)字教材1部,在華為人才在線發(fā)布"HarmonyOS移動應用開發(fā)慕課。獲評蘋果Swift移動編程授權認證講師。指導學生獲得中國高校計算機大賽-移動應用創(chuàng)新賽一等獎(2019年)和二等獎(2020年)。發(fā)表論交十余篇。 楚朋志 上海交通大學學生創(chuàng)新中心主任助理、創(chuàng)新實踐部主任,高級實驗師。獲2022年高等教育(本科)國家級教學成果二等獎、上海市優(yōu)秀教學成果獎特等獎,獲首批-華為智能基座優(yōu)秀救師、鴻蒙生態(tài)人才建設春雨獎,承擔20余項省級及以上教改項目,獲第二屆全國高校混合式教學設計創(chuàng)新大賽特等獎。主講人工智能交互技術基于華為AI平臺的深度學習實踐等課程,2023年和2024年分別有一門課程獲上海市高校重點課程立項,2025年獲華為ICT大賽實驗教學案例高教組特等獎,指導學生參與榜單賽事(入選全國普通高校大學生克賽目錄),并獲最高獎項30余次。
第 1章 初識OpenHarmony 1 1.1 全球智能終端的發(fā)展 1 1.2 我國移動操作系統(tǒng)的機遇與挑戰(zhàn) 2 1.3 OpenHarmony概述 2 1.4 OpenHarmony技術架構 2 1.4.1 內核層 3 1.4.2 系統(tǒng)服務層 4 1.4.3 框架層 4 1.4.4 應用層 4 1.5 OpenHarmony技術特性 4 1.5.1 硬件互助,資源共享 5 1.5.2 一次開發(fā),多端部署 8 1.5.3 統(tǒng)一OS,彈性部署 9 1.6 OpenHarmony安全特性 9 本章小結 10 課后習題 10 第 2章 開發(fā)你的第 一行OpenHarmony代碼 11 2.1 移動應用的組成 11 2.2 移動應用的開發(fā)和運行 12 2.3 移動應用的部署 13 2.4 DevEco Studio特性概述 14 2.4.1 核心特色 15 2.4.2 開發(fā)流程 15 2.5 搭建開發(fā)環(huán)境 16 2.5.1 安裝軟件并配置開發(fā)環(huán)境 17 2.5.2 創(chuàng)建并運行HelloWorld工程 19 2.6 開發(fā)低代碼模式應用 21 2.6.1 低代碼開發(fā)界面簡介 21 2.6.2 使用低代碼開發(fā)界面 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 創(chuàng)建和使用共享包 39 3.2.1 創(chuàng)建HAR庫模塊 40 3.2.2 編譯HAR庫文件 41 3.2.3 為應用添加HAR依賴 41 3.2.4 創(chuàng)建和使用HSP庫模塊 42 3.3 資源限定與訪問 43 3.3.1 資源分類 44 3.3.2 限定詞目錄命名規(guī)則 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間數(shù)據(jù)傳遞 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 實現(xiàn)后臺服務 96 4.6.3 啟動后臺服務 98 4.6.4 連接后臺服務 99 4.6.5 客戶端與服務端通信 100 4.6.6 獲取后臺天氣數(shù)據(jù)示例 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 函數(shù) 112 5.1.5 類 114 5.1.6 接口 119 5.1.7 泛型類和函數(shù) 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 創(chuàng)建自定義組件 126 5.2.4 頁面和自定義組件生命周期 130 5.2.5 自定義構建函數(shù) 135 5.2.6 組件樣式復用及擴展 137 5.3 狀態(tài)管理 140 5.3.1 狀態(tài)管理簡介 140 5.3.2 管理組件的狀態(tài) 143 5.3.3 管理應用的狀態(tài) 149 5.4 渲染控制 155 5.4.1 if/else條件渲染 155 5.4.2 ForEach循環(huán)渲染 157 5.5 ArkTS語言基礎類庫 158 5.5.1 并發(fā) 159 5.5.2 容器類庫 162 5.5.3 XML生成與解析 164 5.6 ArkTS開發(fā)實戰(zhàn) 165 5.6.1 界面的設計與實現(xiàn) 166 5.6.2 配置屬性與布局 167 5.6.3 改變組件狀態(tài) 167 5.6.4 循環(huán)渲染列表數(shù)據(jù) 169 本章小結 171 課后習題 171 第6章 ArkUI設計與開發(fā) 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 添加標題區(qū)和文本區(qū) 178 6.3.4 添加圖片區(qū) 181 6.3.5 添加評論區(qū) 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 購物車應用開發(fā) 211 6.6.1 一次開發(fā),多端部署 211 6.6.2 首頁標簽頁 217 6.6.3 詳情頁設計 224 本章小結 232 課后習題 232 第7章 OpenHarmony數(shù)據(jù)持久化 233 7.1 數(shù)據(jù)持久化定義 233 7.2 DataShareExtensionAbility的使用 233 7.2.1 統(tǒng)一資源標識符 234 7.2.2 創(chuàng)建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 關系數(shù)據(jù)庫操作 246 7.4.1 關鍵術語 246 7.4.2 工作原理 247 7.4.3 數(shù)據(jù)庫操作流程 247 7.4.4 創(chuàng)建數(shù)據(jù)庫 248 7.4.5 數(shù)據(jù)插入 248 7.4.6 數(shù)據(jù)查詢 250 7.5 用戶偏好文件操作 251 7.5.1 工作原理 251 7.5.2 數(shù)據(jù)讀寫 252 7.6 分布式數(shù)據(jù)服務 256 7.6.1 關鍵術語 256 7.6.2 核心組件 257 7.6.3 工作原理 258 7.6.4 分布式數(shù)據(jù)訪問 259 7.7 分布式文件系統(tǒng) 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 跨端遷移功能開發(fā) 274 8.3.1 跨端遷移核心方法 274 8.3.2 跨端遷移實戰(zhàn)開發(fā) 275 8.4 多端協(xié)同功能開發(fā) 276 8.4.1 多端協(xié)同場景分類 276 8.4.2 分布式音樂播放器界面設計 279 8.4.3 多端協(xié)同權限申請 281 8.4.4 設備連接 282 8.4.5 數(shù)據(jù)恢復 284 本章小結 287 課后習題 287 第9章 OpenHarmony傳感器應用和媒體管理 288 9.1 主流傳感器分類 288 9.2 傳感器工作原理 289 9.3 加速度傳感器調用 291 9.4 相機調用 293 9.4.1 相機開發(fā)模型 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 運作機制 313 9.6.3 位置獲取 313 本章小結 315 課后習題 315 第 10章 OpenHarmony原子化服務 316 10.1 原子化服務的定義與特性 316 10.2 原子化服務開發(fā)基礎 317 10.2.1 開發(fā)總體要求 317 10.2.2 服務卡片結構 318 10.2.3 ArkTS運作機制 319 10.2.4 ArkTS卡片優(yōu)點 320 10.3 原子化服務開發(fā)進階 320 10.3.1 卡片項目的文件結構 320 10.3.2 卡片配置文件的特性 321 10.3.3 卡片提供方主要回調函數(shù) 323 10.3.4 卡片頁面基本能力 324 10.3.5 開發(fā)卡片事件 326 10.3.6 卡片數(shù)據(jù)交互 334 10.4 原子化服務開發(fā)實戰(zhàn) 340 10.4.1 項目基本需求 340 10.4.2 建立項目及卡片 340 10.4.3 配置文件解析 341 10.4.4 卡片信息持久化 344 10.4.5 卡片內容刷新 348 10.4.6 卡片頁面跳轉 350 10.4.7 刪除卡片 351 本章小結 352 課后習題 352 第 11章 OpenHarmony網絡訪問與多線程 353 11.1 HTTP接口調用 353 11.2 數(shù)據(jù)上傳和下載 356 11.3 WebSocket連接 358 11.3.1 WebSocket的概念 358 11.3.2 WebSocket的實現(xiàn) 359 11.4 多線程 361 11.4.1 線程模型概述 362 11.4.2 用Emitter線程進行線程間通信 362 11.4.3 用Worker線程進行線程間通信 363 11.5 Web組件網絡訪問 365 11.5.1 使用Web組件加載頁面 365 11.5.2 設置基本屬性和事件 367 11.5.3 在應用中使用前端JS代碼 370 本章小結 372 課后習題 372 第 12章 OpenHarmony高級技術 373 12.1 NAPI的使用 373 12.1.1 應用架構 373 12.1.2 編譯架構 374 12.1.3 開發(fā)流程 374 12.1.4 應用示例 374 12.2 Native XComponent組件的使用 378 12.2.1 界面設計 378 12.2.2 ArkTS側方法的調用 379 12.2.3 渲染功能實現(xiàn) 380 12.2.4 使用NAPI實現(xiàn)觸摸事件回調函數(shù) 385 12.2.5 使用NAPI將C 方法傳遞給ArkTS 386 12.2.6 釋放相關資源 388 12.2.7 注冊與編譯 389 12.3 AI開發(fā) 391 12.3.1 MindSpore Lite簡介 391 12.3.2 MindSpore Lite JS API的使用 392 12.3.3 MindSpore Lite Native API的使用 393 12.4 性能分析工具 397 12.4.1 查看CPU占用情況 398 12.4.2 查看內存占用情況 399 12.5 應用測試 399 12.5.1 實現(xiàn)原理 400 12.5.2 編寫測試腳本 400 12.5.3 執(zhí)行測試腳本 402 本章小結 403 課后習題 403 第 13章 OpenHarmony開發(fā)實戰(zhàn)進階 404 13.1 需求分析 404 13.2 概要設計 405 13.2.1 健康生活應用部署結構 405 13.2.2 健康生活應用總體框架 405 13.2.3 登錄與注冊模塊 406 13.2.4 任務創(chuàng)建與編輯模塊 407 13.2.5 任務打卡模塊 407 13.2.6 成就管理模塊 408 13.3 詳細設計 408 13.3.1 類圖設計 408 13.3.2 數(shù)據(jù)庫設計 410 13.4 代碼開發(fā) 412 13.4.1 應用主頁面 412 13.4.2 任務創(chuàng)建與編輯 418 13.4.3 任務列表與打卡 424 13.4.4 任務提醒 427 13.4.5 數(shù)據(jù)庫訪問 429