本书采用阶梯式结构编排,严格遵循由浅入深的知识递进逻辑,可精准适配不同技术层次读者的学习需求。第1章梳理了HarmonyOS的发展历程,讲解该操作系统的核心特点、整体架构设计原理,并提供环境配置的详细步骤与操作指导。第2~3章讲解了HarmonyOS开发的核心技能,包括ArkTS编程语言的基础知识,以及如何使用ArkUI开发框架进行界面开发、组件生命周期管理,通过实战案例帮助读者完成一个简单的应用开发,之后介绍的UIAbility组件可帮助读者理解HarmonyOS应用中组件之间的交互逻辑。第4~5章主要介绍了UI视图开发及页面状态管理的相关内容。第 6~8章主要针对网络技术应用、数据管理、多媒体应用等内容进行深入讲解,利用数据存储和网络通信丰富应用功能,提升应用的实用性与交互性。
柯晓昱,副教授,福建阳光学院元宇宙与新媒体学院软件工程教研室主任,拥有多年的企业项目开发经验和十余年的高校教学经验,主讲人工智能应用基础、计算机游戏开发(Cocos)、高级语言程序设计、移动应用开发等课程,2023年完成福建省职业教育精品在线开放课程《人工智能应用基础》,2022年获福建省教学成果二等奖。
第一篇 HarmonyOS开发基础
第1章 HarmonyOS介绍 2
1.1 HarmonyOS概述 2
1.1.1 HarmonyOS概念 2
1.1.2 HarmonyOS的发展历程 3
1.2 HarmonyOS的技术特征 4
1.3 HarmonyOS 5的新特性 5
1.3.1 Stage模型 5
1.3.2 ArkUI开发框架 6
1.3.3 ArkTS编程语言 8
1.4 DevEco Studio的安装 9
1.4.1 安装DevEco Studio 9
1.4.2 配置DevEco Studio 10
1.5 应用工程结构介绍 12
1.5.1 工程级目录 12
1.5.2 entry模块级目录 12
1.5.3 配置文件 13
1.6 实战 15
1.6.1 创建项目 16
1.6.2 运行项目 18
1.7 总结 21
1.8 课后练习 22
第2章 ArkTS语言 23
2.1 ArkTS简介 23
2.1.1 认识ArkTS 23
2.1.2 ArkTS与TypeScript、JavaScript的区别 25
2.2 基础数据类型 26
2.2.1 字符串 26
2.2.2 数值型 29
2.2.3 布尔型 30
2.2.4 数组 32
2.2.5 枚举 34
2.2.6 资源类型 35
2.2.7 联合类型 35
2.3 变量和常量 36
2.4 函数 36
2.4.1 函数声明 36
2.4.2 箭头函数 37
2.4.3 闭包 37
2.5 类 37
2.5.1 类的声明 37
2.5.2 字段 38
2.5.3 方法 38
2.5.4 继承 39
2.5.5 对象字面量 40
2.6 接口 41
2.6.1 接口声明 41
2.6.2 接口属性 41
2.6.3 接口继承 42
2.6.4 抽象类和接口 42
2.7 模块 42
2.7.1 模块定义 42
2.7.2 模块导出 44
2.7.3 模块导入 47
2.8 相关应用 49
2.8.1 JSON 49
2.8.2 泛型 50
2.8.3 空安全 51
2.9 ArkTS编程规范 53
2.9.1 总体原则 53
2.9.2 命名规范 53
2.9.3 格式规范 53
2.9.4 编程实践规范 54
2.10 从TypeScript到ArkTS的适配指导 55
2.10.1 为什么要适配 55
2.10.2 适配规则 55
2.10.3 适配实践 56
2.11 实战 57
2.11.1 使用ArkTS实现九九乘法表 57
2.11.2 对一组数据进行排序、过滤处理 58
2.12 总结 59
2.13 课后练习 59
第3章 Ability的开发 61
3.1 Ability概述 61
3.1.1 单Ability应用和多Ability应用 61
3.1.2 HarmonyOS应用开发模型 62
3.2 Stage模型 63
3.2.1 Stage模型中的重要概念 63
3.2.2 Stage模型的设计思想 64
3.3 Want概述 64
3.3.1 Want的用途 64
3.3.2 Want的类型 65
3.3.3 Want参数 65
3.4 UIAbility组件 66
3.4.1 UIAbility组件概述 66
3.4.2 生命周期 67
3.4.3 UIAbility的启动模式 71
3.4.4 UIAbility组件的基本用法 73
3.4.5 UIAbility组件与UI的数据同步 76
3.4.6 启动应用内的UIAbility组件 78
3.4.7 启动UIAbility的指定页面 85
3.5 实战 89
3.6 总结 94
3.7 课后练习 95
第二篇 项目实战
第4章 界面开发 100
4.1 ArkUI开发 100
4.1.1 声明式UI描述 101
4.1.2 ArkUI目录结构 102
4.2 布局 103
4.2.1 布局概述 103
4.2.2 线性布局 104
4.2.3 相对布局 106
4.2.4 层叠布局 108
4.3 组件 109
4.3.1 Text组件 109
4.3.2 Button组件 111
4.3.3 Image组件 113
4.3.4 TextInput组件 117
4.3.5 Toggle组件 121
4.3.6 自定义组件 123
4.4 复杂容器 126
4.4.1 Swiper组件 126
4.4.2 List组件 130
4.4.3 Tabs组件 133
4.5 实战 135
4.6 总结 136
4.7 课后练习 137
第5章 状态管理 139
5.1 状态管理概述 139
5.2 装饰器总览 140
5.3 常用的装饰器 141
5.3.1 @State 141
5.3.2 @Prop 142
5.3.3 @Link 143
5.3.4 @Provide & @Consume 144
5.3.5 @Observed & @ObjectLink 146
5.4 应用级别的状态管理 147
5.4.1 应用状态概述 147
5.4.2 LocalStorage 147
5.4.3 AppStorage 150
5.5 MVVM模式 151
5.5.1 MVVM模式各层职责 152
5.5.2 ArkUI开发框架与MVVM模式的关联 152
5.5.3 MVVM模式分层细化说明 153
5.6 实战 154
5.7 总结 154
5.8 课后练习 154
第6章 网络技术应用 156
6.1 网络访问 156
6.1.1 网络访问概述 156
6.1.2 HarmonyOS网络模块 156
6.2 HTTP请求与响应 157
6.2.1 HTTP业务过程 157
6.2.2 HTTP的工作原理 158
6.2.3 Request 158
6.2.4 Response 161
6.3 Network Kit数据请求 163
6.3.1 GET请求 163
6.3.2 POST请求 166
6.4 Promise异步并发 172
6.4.1 Promise 172
6.4.2 async/await 173
6.5 Axios网络库 175
6.5.1 Axios概述 175
6.5.2 综合实践:使用Axios实现登录功能 176
6.6 Web组件 179
6.6.1 Web组件的定义和用途 179
6.6.2 Web组件的适用场景 179
6.6.3 Web组件的实际应用:加载本地与网络HTML 180
6.6.4 综合案例:基于Web组件实现简易浏览器 181
6.6.5 鸿蒙Web组件与JavaScript交互原理 182
6.6.6 综合案例:基于Web组件实现计算器 183
6.7 总结 188
6.8 课后练习 189
第7章 数据管理 191
7.1 数据管理概述 191
7.2 应用数据持久化概述 193
7.3 用户首选项 194
7.3.1 用户首选项概述 194
7.3.2 用户首选项的接口说明 195
7.3.3 用户首选项的开发步骤 196
7.4 键值型数据库 198
7.4.1 键值型数据库概述 198
7.4.2 键值型数据库的约束限制 198
7.4.3 键值型数据库的接口说明 199
7.4.4 键值型数据库的开发步骤 200
7.5 关系型数据库 203
7.5.1 关系型数据库概述 203
7.5.2 关系型数据库的约束限制 204
7.5.3 关系型数据库的接口说明 205
7.5.4 关系型数据库的开发步骤 205
7.6 实战 211
7.7 总结 212
7.8 课后练习 212
第8章 多媒体应用 214
8.1 多媒体系统架构 214
8.2 图片 215
8.2.1 图片解码 216
8.2.2 图片编码 217
8.2.3 图像变换 219
8.3 相机 220
8.3.1 拍照 220
8.3.2 预览 222
8.4 媒体文件管理 223
8.4.1 选择/保存媒体库资源 223
8.4.2 访问系统相册资源 225
8.5 音频播放管理 228
8.5.1 音频播放开发概述 228
8.5.2 AVPlayer组件 228
8.6 实战 230
8.7 总结 230
8.8 课后练习 230