HarmonyOS NEXT啟程:零基礎(chǔ)構(gòu)建純血鴻蒙應(yīng)用
定 價:108 元
- 作者:KFive啟程小組
- 出版時間:2024/9/1
- ISBN:9787121488320
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TN929.53
- 頁碼:360
- 紙張:
- 版次:01
- 開本:16開
HarmonyOS NEXT操作系統(tǒng)被譽為“純血鴻蒙”,是操作系統(tǒng)領(lǐng)域的重大突破。該系統(tǒng)采用全新的底層架構(gòu)和API,為開發(fā)者帶來了全新的機遇和挑戰(zhàn)。本書從初學者的角度出發(fā),通過系統(tǒng)的講解和豐富的實例,引導(dǎo)讀者逐步掌握HarmonyOS NEXT的開發(fā)精髓。本書首先介紹HarmonyOS的背景知識,講解如何配置環(huán)境,運行第一個HelloWorld項目程序。然后講解HarmonyOS開發(fā)的核心技能,包括ArkTS和ArkUI,幫助讀者完成一個簡單的應(yīng)用。之后著重講解UIAbility、網(wǎng)絡(luò)、數(shù)據(jù)、多媒體等內(nèi)容,以豐富應(yīng)用功能。此外,本書提供進階知識,如HarmonyOS元服務(wù)、工具技巧、ArkTS多線程和多設(shè)備適配。最后通過開發(fā)一個綜合性的App,將所講知識融會貫通。
啟程小組是一個充滿探索精神和創(chuàng)新活力的開發(fā)小組,小組成員都是熱衷于技術(shù)探索和實踐的年輕開發(fā)者。每一位開發(fā)者既具備扎實的技術(shù)功底,又不拘泥于傳統(tǒng)思維,且樂于挑戰(zhàn)和嘗試新的技術(shù)工具和開發(fā)模式。純血鴻蒙開放給開發(fā)者之后,小組成員第一時間進行工程實踐,將經(jīng)驗沉淀下來匯聚到了這本書中。希望通過這本書,幫助更多的技術(shù)愛好者輕松上手鴻蒙系統(tǒng),掌握純血鴻蒙開發(fā)的核心技能,推動這一新技術(shù)在更廣泛的領(lǐng)域內(nèi)實現(xiàn)應(yīng)用和普及。
第1章 初識HarmonyOS,開啟探索之旅 / 1
1.1 HarmonyOS簡介 / 1
1.1.1 HarmonyOS系統(tǒng) / 2
1.1.2 HarmonyOS系統(tǒng)架構(gòu) / 2
1.1.3 HarmonyOS應(yīng)用 / 4
1.2 一覽應(yīng)用包組成 / 4
1.2.1 應(yīng)用包組成 / 4
1.2.2 應(yīng)用包開發(fā)調(diào)試與發(fā)布
部署流程 / 5
1.3 開始運行第一行HarmonyOS代碼 / 6
1.3.1 環(huán)境搭建 / 6
1.3.2 運行HarmonyOS項目 / 7
1.3.3 HarmonyOS項目結(jié)構(gòu)分析 / 12
1.4 本章小結(jié) / 14
第2章 ArkTS語言快速入門 / 15
2.1 什么是ArkTS / 15
2.1.1 ArkTS簡介 / 15
2.1.2 ArkTS與TypeScript、JavaScript的不同 / 16
2.2 基本數(shù)據(jù)類型 / 16
2.2.1 布爾值 / 16
2.2.2 數(shù)字 / 17
2.2.3 字符串 / 18
2.2.4 數(shù)組 / 19
2.2.5 枚舉 / 19
2.2.6 對象 / 20
2.2.7 空值 / 22
2.2.8 聯(lián)合類型 / 22
2.2.9 類型別名 / 23
2.2.10 其他類型 / 23
2.3 變量 / 25
2.3.1 聲明 / 25
2.3.2 運算符 / 26
2.3.3 Null與Undefined / 26
2.4 接口 / 27
2.4.1 接口聲明 / 27
2.4.2 接口屬性 / 28
2.4.3 接口繼承 / 29
2.5 函數(shù) / 29
2.5.1 函數(shù)聲明 / 29
2.5.2 可選參數(shù) / 30
2.5.3 剩余參數(shù) / 30
2.5.4 函數(shù)類型 / 31
2.5.5 箭頭函數(shù) / 31
2.5.6 閉包 / 31
2.6 類 / 32
2.6.1 類聲明 / 32
2.6.2 字段 / 33
2.6.3 字段初始化 / 34
2.6.4 存取器 / 34
2.6.5 繼承 / 35
2.6.6 方法重載 / 36
2.6.7 對象字面量 / 36
2.7 泛型類型 / 37
2.8 空安全 / 37
2.8.1 非空斷言運算符 / 38
2.8.2 空值合并運算符 / 38
2.8.3 可選鏈 / 38
2.9 模塊 / 39
2.9.1 導(dǎo)出 / 39
2.9.2 導(dǎo)入 / 39
2.10 JSON / 40
2.11 其他問題 / 41
2.11.1 interface與class的區(qū)別 / 41
2.11.2 TypeScript寫單例 / 41
2.12 本章小結(jié) / 42
第3章 打造精美界面 / 43
3.1 ArkUI簡介 / 43
3.2 ArkUI基本語法 / 43
3.2.1 ArkUI語法結(jié)構(gòu) / 43
3.2.2 狀態(tài)變量 / 45
3.2.3 自定義構(gòu)建函數(shù) / 46
3.2.4 渲染控制 / 47
3.3 自定義組件及頁面生命周期 / 49
3.4 布局 / 52
3.4.1 布局概述 / 52
3.4.2 線性布局 / 53
3.4.3 層疊布局 / 56
3.4.4 相對布局 / 57
3.4.5 列表 / 58
3.5 頁面路由 / 61
3.5.1 頁面跳轉(zhuǎn) / 61
3.5.2 頁面返回 / 63
3.6 本章小結(jié) / 63
第4章 深入探究UIAbility / 64
4.1 UIAbility概述 / 64
4.1.1 Stage模型概述 / 64
4.1.2 UIAbility聲明配置 / 65
4.2 UIAbility生命周期 / 66
4.2.1 Create狀態(tài) / 66
4.2.2 WindowStageCreate和WindowStageDestroy狀態(tài) / 67
4.2.3 Foreground和Background狀態(tài) / 68
4.2.4 Destroy狀態(tài) / 69
4.3 UIAbility間交互 / 69
4.3.1 啟動應(yīng)用內(nèi)的UIAbility / 69
4.3.2 啟動應(yīng)用內(nèi)的UIAbility并獲取返回結(jié)果 / 72
4.3.3 啟動其他應(yīng)用的UIAbility / 73
4.4 UIAbility啟動模式 / 75
4.4.1 singleton啟動模式 / 75
4.4.2 multiton啟動模式 / 75
4.4.3 specified啟動模式 / 76
4.5 使用EventHub進行數(shù)據(jù)通信 / 78
4.6 本章小結(jié) / 79
第5章 網(wǎng)絡(luò)技術(shù)應(yīng)用 / 80
5.1 Web組件的用法 / 80
5.1.1 加載網(wǎng)絡(luò)HTML鏈接 / 80
5.1.2 加載本地網(wǎng)頁 / 81
5.1.3 Web和JavaScript交互 / 82
5.1.4 處理頁面導(dǎo)航 / 85
5.1.5 攔截頁面內(nèi)請求 / 87
5.1.6 設(shè)置和獲取cookie / 88
5.2 使用HTTP訪問網(wǎng)絡(luò) / 89
5.2.1 使用http模塊 / 89
5.2.2 簡單熱榜示例 / 92
5.2.3 使用WebSocket / 97
5.3 可用的網(wǎng)絡(luò)庫:axios / 99
5.3.1 axios的基本用法 / 99
5.3.2 實戰(zhàn):使用axios重構(gòu)簡單熱榜列表 / 100
5.4 本章小結(jié) / 101
第6章 數(shù)據(jù)持久化技術(shù)詳解 / 102
6.1 應(yīng)用沙箱 / 102
6.1.1 應(yīng)用文件目錄 / 102
6.1.2 獲取應(yīng)用文件目錄 / 105
6.2 數(shù)據(jù)持久化 / 107
6.2.1 普通文件存儲 / 107
6.2.2 用戶首選項 / 109
6.2.3 鍵值型數(shù)據(jù)庫 / 114
6.2.4 關(guān)系數(shù)據(jù)庫 / 119
6.3 本章小結(jié) / 125
第7章 熟練運用手機多媒體 / 126
7.1 多媒體系統(tǒng)架構(gòu) / 126
7.2 音頻 / 127
7.2.1 音頻播放開發(fā)概述 / 127
7.2.2 使用AVPlayer播放音頻 / 128
7.2.3 使用AudioRenderer播放音頻 / 132
7.2.4 使用SoundPool播放音頻 / 134
7.2.5 音頻錄制概述 / 136
7.2.6 使用AVRecorder錄制音頻 / 136
7.2.7 使用AudioCapturer錄制音頻 / 138
7.3 視頻 / 140
7.3.1 視頻播放開發(fā)概述 / 140
7.3.2 使用AVPlayer播放視頻 / 140
7.3.3 使用Video組件播放視頻 / 145
7.3.4 使用AVRecorder錄制視頻 / 148
7.4 相機 / 151
7.4.1 相機開發(fā)概述 / 151
7.4.2 預(yù)覽 / 154
7.4.3 拍照 / 155
7.5 圖片 / 157
7.5.1 圖片開發(fā)概述 / 157
7.5.2 圖片解碼 / 158
7.5.3 圖片編碼 / 158
7.5.4 圖像變換 / 159
7.6 媒體文件管理 / 162
7.6.1 媒體文件管理概述 / 162
7.6.2 查詢和更新用戶相冊資源 / 162
7.6.3 查詢系統(tǒng)相冊資源 / 163
7.7 本章小結(jié) / 164
第8章 HarmonyOS元服務(wù)
開發(fā)與應(yīng)用 / 165
8.1 元服務(wù) / 165
8.1.1 創(chuàng)建一個元服務(wù)項目 / 166
8.1.2 如何在桌面添加元服務(wù) / 169
8.1.3 元服務(wù)基礎(chǔ)知識 / 171
8.2 服務(wù)卡片 / 173
8.2.1 服務(wù)卡片的基礎(chǔ)架構(gòu) / 173
8.2.2 服務(wù)卡片的開發(fā)方式 / 174
8.2.3 靜態(tài)卡片和動態(tài)卡片 / 175
8.2.4 如何通過IDE創(chuàng)建一個
服務(wù)卡片 / 176
8.3 服務(wù)卡片的生命周期與應(yīng)用 / 179
8.3.1 生命周期 / 179
8.3.2 extensionAbilities配置 / 181
8.3.3 卡片相關(guān)的配置文件 / 182
8.3.4 手動觸發(fā)下一次更新時間 / 183
8.3.5 數(shù)據(jù)操作 / 184
8.3.6 舉例 / 185
8.4 服務(wù)卡片的交互與應(yīng)用 / 187
8.4.1 action為router / 188
8.4.2 action為message / 192
8.4.3 action為call / 194
8.5 編寫一個待辦列表 / 197
8.5.1 目錄結(jié)構(gòu) / 197
8.5.2 首頁 / 198
8.5.3 服務(wù)卡片 / 200
8.5.4 數(shù)據(jù)操作類 / 203
8.6 本章小結(jié) / 206
第9章 DevEco Studio調(diào)試技巧 / 207
9.1 一些必備的基礎(chǔ)知識 / 207
9.1.1 HAP的安裝流程 / 207
9.1.2 HDC簡介 / 208
9.2 代碼斷點調(diào)試 / 209
9.2.1 添加和管理斷點 / 209
9.2.2 啟動調(diào)試 / 211
9.2.3 ArkUI邏輯調(diào)試 / 214
9.2.4 C/C++調(diào)試 / 218
9.3 使用ArkUI Inspector調(diào)試UI布局信息 / 222
9.4 WebView的調(diào)試 / 224
9.5 查看日志 / 225
9.5.1 HiLog / 227
9.5.2 FaultLog / 229
9.6 性能監(jiān)測 / 230
9.7 常用的快捷鍵 / 233
9.8 本章小結(jié) / 234
第10章 ArkTS多線程開發(fā)概覽 / 235
10.1 ArkTS線程模型的特點 / 235
10.1.1 ArkTS線程模型的特點和比較 / 235
10.1.2 ArkTS線程設(shè)計的優(yōu)缺點 / 237
10.2 ArkTS多線程開發(fā)的注意點 / 238
10.2.1 線程同步方式 / 239
10.2.2 線程數(shù)據(jù)傳輸方式 / 240
10.2.3 如何讓代碼在子線程上運行 / 241
10.2.4 使用@Concurrent和@Sendable時對閉包和ES module的限制 / 241
10.2.5 使用@ohos.taskpool時運行環(huán)境的初始化問題 / 244
10.2.6 使用@ohos.taskpool時運行環(huán)境的清理問題 / 247
10.2.7 如何跨VM傳輸function和class / 248
10.3 異步 API 的使用 / 253
10.3.1 await 和 Promise的使用 / 253
10.3.2 await和Promise的實現(xiàn) / 257
10.3.3 用同步API還是異步API / 258
10.4 本章小結(jié) / 261
第11章 自由流轉(zhuǎn),讓應(yīng)用無處不在 / 262
11.1 什么是自由流轉(zhuǎn) / 262
11.1.1 跨端遷移 / 262
11.1.2 多端協(xié)同 / 262
11.1.3 HarmonyOS 可實現(xiàn)的流轉(zhuǎn)場景 / 263
11.2 服務(wù)互通 / 263
11.2.1 設(shè)備限制和使用限制 / 263
11.2.2 核心API / 263
11.3 應(yīng)用接續(xù) / 266
11.3.1 工作機制與流程 / 266
11.3.2 設(shè)備限制與使用限制 / 267
11.3.3 核心API / 267
11.3.4 應(yīng)用接續(xù)開發(fā)流程 / 268
11.3.5 遷移功能可選配置 / 271
11.3.6 應(yīng)用接續(xù)的注意事項 / 272
11.4 媒體播控 / 272
11.4.1 HarmonyOS 媒體播控的基本概念 / 273
11.4.2 工作機制與流程 / 273
11.4.3 設(shè)備限制與使用限制 / 274
11.4.4 核心API / 274
11.4.5 開發(fā)步驟及示例代碼 / 275
11.5 跨設(shè)備拖曳和剪貼板 / 279
11.5.1 運作機制 / 279
11.5.2 設(shè)備限制與使用限制 / 280
11.5.3 開發(fā)指導(dǎo) / 281
11.6 本章小結(jié) / 283
第12章 一次開發(fā),多端部署 / 284
12.1 HarmonyOS多設(shè)備適配簡介 / 284
12.2 開發(fā)前的工作 / 284
12.3 “一多”工程配置 / 285
12.3.1 目錄結(jié)構(gòu)調(diào)整 / 285
12.3.2 模塊配置調(diào)整 / 288
12.4 “一多”頁面布局開發(fā) / 290
12.4.1 自適應(yīng)布局 / 290
12.4.2 響應(yīng)式布局 / 296
12.5 多設(shè)備功能適配 / 306
12.5.1 系統(tǒng)能力適配 / 306
12.5.2 應(yīng)用尺寸限制和適配 / 308
12.6 本章小結(jié) / 309
第13章 打造多層級Tab信息流App / 310
13.1 項目設(shè)計 / 310
13.1.1 功能與界面設(shè)計 / 310
13.1.2 架構(gòu)設(shè)計 / 310
13.2 一級Tab實現(xiàn) / 312
13.3 二級Tab實現(xiàn) / 313
13.4 信息流 / 315
13.4.1 信息流模板實現(xiàn) / 316
13.4.2 信息流單擊事件處理 / 325
13.4.3 信息流內(nèi)容頁實現(xiàn) / 326
13.5 信息流數(shù)據(jù)的網(wǎng)絡(luò)請求和處理 / 328
13.6 本章小結(jié) / 332
第14章 HarmonyOS應(yīng)用
發(fā)布 / 333
14.1 HarmonyOS應(yīng)用發(fā)布整體流程 / 333
14.2 準備簽名文件 / 334
14.2.1 生成密鑰和證書請求文件 / 334
14.2.2 創(chuàng)建AGC項目 / 336
14.2.3 創(chuàng)建HarmonyOS應(yīng)用 / 337
14.2.4 申請發(fā)布證書 / 338
14.2.5 申請發(fā)布Profile文件 / 340
14.3 配置構(gòu)建App / 341
14.3.1 配置簽名信息 / 341
14.3.2 編譯構(gòu)建App / 343
14.4 上架應(yīng)用市場 / 343
14.5 本章小結(jié) / 348