本书以纯血鸿蒙为核心,从HarmonyOS NEXT基础知识着手,引领读者逐步掌握移动应用开发的相关技术。全书共13章,涵盖系统概述、开发基础、ArkTS编程、ArkUI设计、数据存储、网络调用、服务卡片、元服务、一多开发、应用上架等完整的知识体系,强调以实际应用为导向,通过案例项目锻炼学生实际动手能力。
本书突出四大特色:案例驱动(城市列表管理、运动计划管理、音乐播放器等丰富的实战案例)、技术前沿(CodeGenie AI辅助编程、最新的鸿蒙版本)、工程能力培养(完整的开发流程)、思政元素融入。教程内容紧凑、语言通俗、步骤简洁,配有精心设计的源代码、注释说明和课后训练任务。
本书可作为普通本科、应用型本科、职业本科计算机类专业“HarmonyOS应用开发”“移动应用开发”等课程教材,也可作为其他鸿蒙应用开发初学者的自学用书。
第1章 纯血鸿蒙HarmonyOS NEXT简介 001
1.1 移动应用平台的趋势 001
1.2 初识HarmonyOS 002
1.2.1 发展历程 002
1.2.2 鸿蒙系统分类 003
1.2.3 HarmonyOS应用类型 003
1.3 HarmonyOS主要特性 004
1.4 为什么叫纯血鸿蒙 005
1.4.1 纯血鸿蒙是什么 005
1.4.2 为什么这么做 005
1.4.3 影响与挑战 006
【本章小结】 006
【课后任务】 006
第2章 开发工具与开发基础 007
2.1 开发工具DevEco Studio 007
2.1.1 概述 007
2.1.2 下载安装 007
2.1.3 DevEco Studio页面 009
2.1.4 DevEco Studio的设置 009
2.1.5 模拟器配置 010
2.2 项目创建与调试 013
2.2.1 创建ArkTS工程 013
2.2.2 注册开发者账号并签名 016
2.2.3 模拟器调试 017
2.2.4 真机调试 018
2.3 项目目录结构 018
2.3.1 应用模型 018
2.3.2 Stage模型的项目结构 018
2.3.3 资源目录 019
2.4 应用开发基础 020
2.4.1 应用程序包 020
2.4.2 Module类型 021
2.4.3 应用程序包的开发与应用 021
2.5 Stage模型的应用配置文件 023
2.5.1 app.json5配置文件 023
2.5.2 module.json5配置文件 024
【本章小结】 025
【课后任务】 025
第3章 ArkTS编程语言 026
3.1 ArkTS基础知识 026
3.1.1 简介 026
3.1.2 基本数据类型 027
3.1.3 引用类型 027
3.1.4 运算符 029
3.1.5 语句 029
3.2 函数 033
3.2.1 函数声明 033
3.2.2 函数类型 034
3.2.3 箭头函数 035
3.2.4 函数重载 035
3.3 类 035
3.3.1 类的声明 035
3.3.2 字段 036
3.3.3 方法 037
3.3.4 构造函数 038
3.3.5 可见性修饰符 039
3.3.6 继承 040
3.3.7 抽象类和抽象方法 040
3.4 接口 041
3.4.1 接口的声明与实现 041
3.4.2 抽象类和接口 041
3.5 泛型类型 042
3.5.1 泛型类和泛型接口 042
3.5.2 泛型函数 042
3.5.3 泛型默认值 043
3.6 空安全 043
3.6.1 强制空安全 043
3.6.2 非空断言运算符 043
3.7 模块 044
3.8 实践训练 045
【本章小结】 046
【课后任务】 047
第4章 Ability Kit 048
4.1 Ability Kit简介 048
4.2 Stage模型 049
4.2.1 简介 049
4.2.2 Stage模型的逻辑结构 049
4.3 UIAbility组件 050
4.3.1 概述 050
4.3.2 生命周期 051
4.3.3 UIAbility的创建 051
4.3.4 配置UIAbility的启动页面 053
4.3.5 Want对象 053
4.3.6 获取UIAbility的上下文对象 055
4.3.7 启动应用内UIAbility 055
4.4 UIAbility应用案例 057
【本章小结】 061
【课后任务】 062
第5章 ArkUI设计基础 063
5.1 ArkUI简介 063
5.2 开发范式 064
5.2.1 类Web开发范式 064
5.2.2 声明式开发范式 064
5.2.3 声明式开发范式的架构 064
5.3 ArkUI声明式范式基本语法 065
5.3.1 语法的整体认识 065
5.3.2 声明式UI描述 066
5.3.3 系统组件 068
5.3.4 自定义组件 069
5.3.5 自定义组件的生命周期 070
5.3.6 自定义组件生命周期测试案例 071
5.3.7 状态管理 073
5.3.8 图片浏览案例 074
5.3.9 if/else条件渲染 076
5.3.10 ForEach循环渲染 077
5.3.11 循环渲染案例 078
5.4 ArkUI的页面布局 080
5.4.1 布局结构 080
5.4.2 布局容器 081
5.4.3 布局组件应用案例 082
5.5 页面跳转 085
5.5.1 页面路由和页面导航概述 085
5.5.2 页面跳转与返回 085
5.6 综合应用案例 087
5.6.1 功能规划 087
5.6.2 实现思路 088
5.6.3 关键代码 089
【本章小结】 091
【课后任务】 091
第6章 构建丰富的页面 092
6.1 Swiper组件 092
6.1.1 构建与播放 092
6.1.2 页面切换的控制 094
6.2 List组件 095
6.2.1 简介 095
6.2.2 List的构建 096
6.2.3 分组列表 099
6.2.4 城市列表管理案例 102
6.3 Tabs组件 105
6.3.1 简介 105
6.3.2 Tabs的应用 106
6.3.3 Tabs的集成应用案例 108
6.4 Navigation导航组件 110
6.4.1 简介 110
6.4.2 页面显示模式 111
6.4.3 Navigation的配件设置 114
6.4.4 Navigation路由 114
6.4.5 子页面 116
6.4.6 路由表 118
6.4.7 系统路由表应用案例 119
6.5 弹窗应用 122
6.5.1 弹窗概述 122
6.5.2 固定样式弹窗 123
6.5.3 弹窗应用案例 127
6.6 综合应用案例 131
6.6.1 功能描述 131
6.6.2 实现思路 131
6.6.3 实体与数据 132
6.6.4 主要代码 133
【本章小结】 137
【课后任务】 137
第7章 数据存储 139
7.1 文件简介 139
7.1.1 概述 139
7.1.2 文件操作接口 140
7.2 文件存储 141
7.2.1 常用的文件操作 141
7.2.2 文件读写案例 144
7.3 用户首选项数据持久化 146
7.3.1 简介 146
7.3.2 常用接口 147
7.3.3 应用方法 147
7.3.4 用户首选项案例 148
7.4 关系数据库的应用 152
7.4.1 简介 152
7.4.2 基本组件 152
7.4.3 开发方法 154
7.4.4 数据库应用案例 155
【本章小结】 164
【课后任务】 164
第8章 网络调用 166
8.1 HTTP数据请求 166
8.1.1 概述 166
8.1.2 request接口应用 167
8.1.3 HTTP数据请求案例 169
8.2 RCP数据请求 173
8.2.1 概述 173
8.2.2 应用方法 174
8.2.3 RCP登录网站案例 174
8.3 ArkWeb应用 180
8.3.1 概述 180
8.3.2 加载本地页面 181
8.3.3 加载网络页面 182
8.3.4 Web APP设计案例 183
【本章小结】 185
【课后任务】 185
第9章 事件与通知 186
9.1 进程间通信的公共事件 186
9.1.1 概述 186
9.1.2 公共事件的订阅、接收与取消 187
9.1.3 系统公共事件订阅案例 189
9.2 线程间通信的事件 191
9.2.1 概述 191
9.2.2 开发方法 192
9.2.3 Emitter应用案例 193
9.3 通知服务 196
9.3.1 概述 196
9.3.2 发布通知 197
9.3.3 设置通知渠道 199
9.3.4 为通知添加意图 199
9.3.5 下载通知案例 201
【本章小结】 206
【课后任务】 206
第10章 服务卡片及元服务 207
10.1 服务卡片 207
10.1.1 概述 207
10.1.2 服务卡片的类型 208
10.1.3 卡片开发服务Form Kit 209
10.1.4 共包方式创建卡片 209
10.1.5 独立包方式创建卡片 212
10.1.6 ArkTS卡片开发 213
10.1.7 服务卡片应用案例 214
10.2 元服务 216
10.2.1 元服务概述 216
10.2.2 元服务开发 218
10.2.3 元服务之科技春晚介绍案例 220
【本章小结】 222
【课后任务】 222
第11章 CodeGenie与第三方库 223
11.1 DevEco CodeGenie 223
11.1.1 概述 223
11.1.2 插件的获取 223
11.1.3 CodeGenie能力概览 224
11.1.4 知识库的配置 230
11.2 第三方库 230
11.2.1 概述 230
11.2.2 常用第三方库介绍 232
11.2.3 第三方库@ohos/lottie介绍 232
11.2.4 第三方库应用案例 234
【本章小结】 238
【课后任务】 239
第12章 一多开发 240
12.1 一多开发概述 240
12.1.1 定义和目标 240
12.1.2 开发方案 241
12.2 界面级一多开发 241
12.2.1 总述 241
12.2.2 自适应布局 241
12.2.3 响应式布局 245
12.2.4 栅格布局的应用案例 247
12.3 功能级一多开发 248
12.3.1 总述 248
12.3.2 能力集配置 248
12.4 工程级一多开发 249
12.4.1 工程结构 249
12.4.2 工程项目示例 250
12.5 音乐播放器案例 251
12.5.1 功能描述及开发要求 251
12.5.2 工程级的实现方案 251
12.5.3 功能级的实现方案 251
12.5.4 UI设计的实现方案 252
12.5.5 项目源代码 254
【本章小结】 254
【课后任务】 255
第13章 应用及服务上架 256
13.1 总体流程 256
13.1.1 概述 256
13.1.2 操作流程 256
13.2 创建项目与应用 257
13.2.1 创建项目 257
13.2.2 添加应用 257
13.3 申请证书与Profile文件 258
13.3.1 申请发布证书 258
13.3.2 申请Profile文件 260
13.4 签名与编译软件包 261
13.4.1 项目签名 261
13.4.2 编译软件包 262
13.5 上架 262
【本章小结】 263
【课后任务】 264
参考文献265