本書較為全面地介紹了HarmonyOS應用的組成,開發(fā)流程和開發(fā)工具,以及應用前端UI,后臺服務設計和數(shù)據(jù)庫訪問等內(nèi)容。全書共12章,內(nèi)容包括初識HarmonyOS,開啟你的第一行HarmonyOS代碼,HarmonyOS應用結構剖析,HarmonyOS核心組件Ability,JS UI開發(fā)語法基礎,HarmonyOS輕代碼開發(fā)JS UI設計,HarmonyOS數(shù)據(jù)持久化,HarmonyOS流轉(zhuǎn)架構解析,HarmonyOS傳感器應用和媒體管理,HarmonyOS原子化服務,HarmonyOS網(wǎng)絡訪問與多線程,中信銀行本地生活App的設計與實現(xiàn)等。
書中非常強調(diào)理論和實踐結合,凡是涉及動手操作的章節(jié),都安排了豐富的代碼示例來鞏固移動應用開發(fā)知識點,此外,在本書最后一章,特意以一個實際上架并廣泛使用的商用App中信銀行本地生活App為例,介紹了真實軟件企業(yè)如何從需求分析入手,進行概設和詳設,到最后的代碼,全過程貫徹軟件工程思想,通過工程化理念來指導移動應用開發(fā)的全過程。希望本書不僅能覆蓋常用移動操作系統(tǒng)中應用的開發(fā)的共性,而且更能體現(xiàn)HarmonyOS中應用開發(fā)的特性。本書每章后面都設計了習題,希望通過練習和操作實踐,幫助讀者鞏固所學的內(nèi)容。
本書既可以作為本科院校和高職高專計算機相關專業(yè)移動應用開發(fā)課程的教材,也可以作為對HarmonyOS應用開發(fā)有興趣的IT從業(yè)人員自學使用的資料。
1. 華為 ICT 學院HarmonyOS認證指定教材,內(nèi)容權威。
2. 覆蓋華為ICT學院HarmonyOS認證考試大綱的同時,結合作者多年的一線教學經(jīng)驗,深入淺出地講解了HarmonyOS的相關知識。
3. 配套教學資源豐富且高質(zhì)。
4.本教材注重理論與實踐的結合,使學生能通過實踐深化對理論的理解,學會并掌握理論知識的實際應用。能更好的培養(yǎng)學生的專業(yè)技能和實踐能力,學生在學完本書后能學以致用。
5. 參與本書編寫工作的人員都是長期從事相關課程教學的一線教師和長期從事軟件開發(fā)的工程師,具有豐富的教學經(jīng)驗和實踐經(jīng)驗。
華為創(chuàng)立于1987年,是全球領先的ICT(信息與通信)基礎設施和智能終端提供商。目前華為約有19.7萬員工,業(yè)務遍及170多個國家和地區(qū),服務全球30多億人口。
華為致力于把數(shù)字世界帶入每個人、每個家庭、每個組織,構建萬物互聯(lián)的智能世界:讓無處不在的聯(lián)接,成為人人平等的權利,成為智能世界的前提和基礎;為世界提供最強算力,讓云無處不在,讓智能無所不及;所有的行業(yè)和組織,因強大的數(shù)字平臺而變得敏捷、高效、生機勃勃;通過AI重新定義體驗,讓消費者在家居、出行、辦公、影音娛樂、運動健康等全場景獲得極致的個性化智慧體驗。
目錄
第 1章 初識HarmonyOS 1
學習目標
1.1 HarmonyOS的起因和發(fā)展 1
1.2 HarmonyOS技術架構 2
1.3 HarmonyOS技術特性 3
1.3.1 硬件互助,資源共享 4
1.3.2 一次開發(fā),多端部署 7
1.3.3 統(tǒng)一OS,彈性部署 7
1.4 HarmonyOS安全特性 7
本章小結 8
課后習題 8
第 2章 開啟你的第 一行 HarmonyOS代碼 9
學習目標
2.1 DEVECO STUDIO特性簡介 9
2.1.1 核心特色 9
2.1.2 開發(fā)流程 10
2.2 開發(fā)環(huán)境搭建 13
2.2.1 配置開發(fā)環(huán)境 13
2.2.2 創(chuàng)建并運行HelloWorld工程 15
2.3 低代碼模式應用開發(fā) 19
2.3.1 低代碼開發(fā)界面介紹 19
2.3.2 使用低代碼界面 20
2.3.3 多語言支持 22
2.3.4 案例花朵展示列表App示例 22
2.4 編譯構建GRADLE 27
2.4.1 Gradle的簡介 27
2.4.2 HarmonyOS應用中的Gradle 27
2.5 應用調(diào)試 30
2.5.1 模擬器調(diào)試 30
2.5.2 自動簽名生成 34
2.5.3 簽名HAP包生成 37
2.5.4 真機調(diào)試 38
2.6 應用發(fā)布 39
2.6.1 準備簽名文件 40
2.6.2 配置簽名信息和編譯 44
2.6.3 應用上架 45
本章小結 46
課后習題 46
第3章 HarmonyOS應用結構剖析 47
學習目標
3.1 APP和HAP的組成 47
3.1.1 App包結構 47
3.1.2 HAP模塊結構 48
3.2 創(chuàng)建和使用HAR 49
3.2.1 創(chuàng)建庫模塊 49
3.2.2 將庫文件編譯為HAR 51
3.2.3 為應用添加依賴 52
3.3 資源限定與訪問 53
3.3.1 限定詞目錄命名規(guī)則 54
3.3.2 限定詞與設備的匹配 54
3.3.3 引用JS模塊內(nèi)資源 55
3.4 配置文件 56
3.4.1 配置文件的內(nèi)部結構 56
3.4.2 App對象內(nèi)部結構 57
3.4.3 deviceConfig對象內(nèi)部結構 58
3.4.4 module對象的內(nèi)部結構 58
3.4.5 ability對象的內(nèi)部結構 62
本章小結 67
課后習題 67
第4章 HarmonyOS核心組件Ability 69
學習目標
4.1 Ability的定義 69
4.1.1 FA和PA支持的模板 69
4.1.2 MVC和DPS異同 70
4.2 PAGE 72
4.2.1 AbilitySlice 72
4.2.2 AbilitySlice路由配置 72
4.3 生命周期 75
4.3.1 Page狀態(tài) 75
4.3.2 Page回調(diào)函數(shù) 76
4.3.3 Page與AbilitySlice生命周期關聯(lián) 77
4.3.4 AbilitySlice間的導航 78
4.4 PAGE的用法 80
4.4.1 Page的創(chuàng)建 80
4.4.2 創(chuàng)建和加載布局 81
4.4.2 config.json中注冊 83
4.5 SERVICE 85
4.5.1 Service的定義 85
4.5.2 Service生命周期 85
4.5.2 啟動Service 86
4.5.3 連接Service 87
4.5.4 前端Service 88
4.6 使用INTENT進行頁面導航 90
4.6.1 Intent的作用 90
4.6.2 啟動顯式Intent 90
4.6.3 啟動隱式Intent 91
4.6.4 向下一個Ability傳遞數(shù)據(jù) 93
4.6.5 返回數(shù)據(jù)給上一個Ability 94
4.7 階段案例-訪問后臺服務獲取電量信息 96
4.7.1 建立后臺Service獲取電量 96
4.7.2 建立后臺與前臺信息交互的接口類 98
4.7.3 前臺Page與Service交互 98
本章小結 100
課后習題 100
第5章 JS UI開發(fā)語法基礎 101
學習目標
5.1 HML語法 102
5.1.1 頁面結構 102
5.1.2 數(shù)據(jù)綁定 103
5.1.3 事件綁定 103
5.1.4 列表渲染 104
5.1.5 條件渲染 105
5.2 CSS語法 106
5.2.1尺寸單位 107
5.2.2樣式選擇器 107
5.2.3偽類 109
5.3 JS語法 110
5.3.1關鍵字 110
5.3.2對象 110
5.3.2方法 115
本章小結 117
課后習題 117
第6章 HarmonyOS輕代碼開發(fā)JS UI設計 118
學習目標
6.1 JS UI框架基礎 118
6.1.1 JS UI框架的意義 118
6.1.2 JS框架的結構 119
6.1.3 JS FA基本組成分析 119
6.1.4 JS應用生命周期和頁面生命周期 122
6.2 組件通用特性 124
6.2.1 組件通用屬性 124
6.2.2 組件通用樣式 125
6.2.3 組件通用事件手勢和按鍵操作 127
6.3 構建復雜的交互界面 130
6.3.1 布局構建 130
6.3.2 基礎組件和容器組件的關系 131
6.3.3 添加標題區(qū)和文本區(qū) 132
6.3.4 添加圖片區(qū)域 133
6.3.5 添加評論區(qū)域 134
6.4 容器組件 139
6.4.1 list組件 139
6.4.2 tabs組件 141
6.4.3 dialog組件 144
6.4.4 swiper組件 147
6.4.5 form組件 150
6.5 自定義組件 153
6.5.1 自定義組件生命周期 153
6.5.2 構建自定義組件 153
6.5.3 調(diào)用自定義組件 157
6.6 JS FA調(diào)用PA 160
6.6.1 PA端Ability分類 160
6.6.2 建立客戶端FA 160
6.6.3 建立內(nèi)部Ability服務端 162
6.6.4 建立外部Ability服務端 165
6.7 JS其他必要功能 167
6.7.1 頁面路由 167
6.7.2 日志打印 168
6.7.3 動畫 169
6.8 JS購物車開發(fā) 174
6.8.1 主頁界面設計 174
6.8.2 主頁業(yè)務邏輯設計 177
6.8.3 詳情頁界面設計 177
6.8.4 詳情頁業(yè)務邏輯設計 182
本章小結 184
課后習題 185
第7章 HarmonyOS數(shù)據(jù)持久化 186
學習目標
7.1 數(shù)據(jù)持久化定義 186
7.2 DATA Ability 186
7.2.1 URI 187
7.2.2 創(chuàng)建Data Ability 187
6.2.2 注冊Data Ability 189
7.2.3 訪問Data Ability準備 189
7.3 文件存儲 191
7.3.1 創(chuàng)建數(shù)據(jù)提供端 191
7.3.2 創(chuàng)建數(shù)據(jù)訪問端 191
7.3.3 直接文件讀取 193
7.4 關系型數(shù)據(jù)庫操作 195
7.4.1 關鍵術語 195
7.4.2 工作原理 195
7.4.3 創(chuàng)建數(shù)據(jù)庫 196
7.4.4 數(shù)據(jù)插入 197
7.4.5 數(shù)據(jù)查詢 198
7.5 對象關系型數(shù)據(jù)庫操作 201
7.5.1 核心工作組件 201
7.5.2 工作原理 201
7.5.3 創(chuàng)建數(shù)據(jù)庫 202
7.5.4 數(shù)據(jù)插入 204
7.5.5 數(shù)據(jù)查詢 205
7.6 用戶偏好文件操作 208
7.6.1 工作原理 208
7.6.2 數(shù)據(jù)讀寫 208
7.7 分布式數(shù)據(jù)服務 215
7.7.1 關鍵術語 215
7.7.2 核心組件 216
7.7.3 工作原理 216
7.7.4 分布式數(shù)據(jù)訪問 217
7.8 分布式文件服務 226
7.8.1 工作原理 226
7.8.2 分布式文件讀寫 227
本章小結 232
課后習題 233
第8章 HarmonyOS流轉(zhuǎn)架構剖析 234
學習目標
8.1 流轉(zhuǎn)的核心概念 234
8.2 流轉(zhuǎn)架構 236
8.2.1 核心組件 236
8.2.2 關鍵流程 237
8.3 跨端流轉(zhuǎn)功能開發(fā) 238
8.3.1 跨端拉起FA 238
8.3.2 跨端遷移具體步驟 244
8.3.3 跨端遷移實戰(zhàn)開發(fā) 245
8.4 多端協(xié)同功能開發(fā) 247
8.4.1 多端協(xié)同具體步驟 248
8.4.2 界面交互思路及設計 249
8.4.3 權限申請 253
8.4.4 設備連接 255
8.4.4 設備交互 258
本章小結 261
課后習題 261
第9章 HarmonyOS傳感器應用和媒體管理 263
學習目標
9.1 普通傳感器分類 263
9.2 工作原理 264
9.3 普通傳感器調(diào)用 266
9.4 相機調(diào)用 267
9.5 位置傳感器調(diào)用 269
9.5.1 基本概念 269
9.5.2 運作機制 270
9.5.3 位置獲取 270
本章小結 272
課后習題 272
第 10章 HarmonyOS原子化服務 273
學習目標
10.1 原子化服務定義與特性 273
10.2 原子化服務體驗 274
10.2.1 服務中心 274
10.2.2 原子化服務分享 275
10.3 原子化服務開發(fā)基礎 278
10.3.1 開發(fā)總體要求 278
10.3.2 服務卡片結構 279
10.3.3 運作機制 280
10.3.4 卡片提供方主要回調(diào)函數(shù) 280
10.3.5 JS卡片語法基礎 281
10.4 原子化服務開發(fā)進階 283
10.4.1 卡片工程文件結構 283
10.4.2 卡片資源訪問 283
10.4.3 卡片配置文件 286
10.5 原子化服務開發(fā)實戰(zhàn) 287
10.5.1 建立工程及卡片 288
10.5.2 配置文件解析 290
10.5.3 卡片信息持久化 295
10.5.4 卡片內(nèi)容刷新 299
10.5.5 卡片頁面跳轉(zhuǎn) 300
10.5.6 卡片消息傳遞 301
10.5.7 卡片事件觸發(fā) 303
10.5.8 內(nèi)存圖片讀取 305
10.6 原子化服務分享 308
10.6.1 服務分享運作機制 308
10.6.2 服務分享開發(fā) 309
本章小結 314
課后習題 315
第 11章 HarmonyOS網(wǎng)絡訪問與多線程 316
學習目標
11.1 HTTP接口調(diào)用 316
11.2 數(shù)據(jù)上傳和下載 319
11.3 WEBSOCKET連接 320
11.3.1 WebSocket概念 320
11.3.2 WebSocket實現(xiàn) 321
11.4 多線程 323
11.4.1 進程和線程的區(qū)別 323
11.4.2 多線程分類 323
11.4.3 多線程的使用 324
本章小結 326
課后習題 326
第 12章 中信銀行本地生活APP的設計與實現(xiàn) 327
學習目標
12.1 需求分析 327
12.2 概要設計 329
12.2.1 本地生活應用部署圖 329
12.2.2 本地生活App總體流程圖 330
12.2.3 登錄與注冊模塊 331
12.2.4 綁定信用卡模塊 332
12.2.5 優(yōu)惠信息展示模塊 333
12.2.6 訂單管理模塊 334
12.3 詳細設計 335
12.3.1 類圖設計 335
12.3.2 數(shù)據(jù)庫設計 338
12.4 代碼開發(fā) 340
12.4.1 優(yōu)惠信息展示模塊 341
12.4.2 服務卡片展示模塊 356
本章小結 364