本书是一本面向HarmonyOS 开发者的系统化实战指南。全书基于HarmonyOS 的最新特性与生态发展方向,通过基础、进阶与综合案例三大部分,共 15 章内容,由浅入深地介绍了HarmonyOS 应用开发的核心知识与实战技巧。内容涵盖ArkUI 框架、Ability 组件、自定义控件、数据存储、多媒体及网络请求等关键技术点,并配备可运行的商业级项目案例(电商 App),帮助读者真正掌握“一次开发,多端部署”的全场景开发能力。本书强调“案例驱动+代码实操”,重点章节配备可运行示例与详细注释,并附赠源代码及社区答疑支持。本书既适合零基础初学者和转型开发者快速入门,也可作为高校HarmonyOS课程的教材,帮助读者构建全场景应用开发能力,迎接万物智联时代的机遇与挑战。
熊振敏为微软技术专业人员,曾在知名公司担任前端开发经理、技术总监、课程教研总监职位, 长期致力于前端和移动端技术研发,并出版多部图书作品。
目 录
第1 章 认识HarmonyOS 001
1.1 HarmonyOS 简介 001
1.1.1 什么是HarmonyOS 001
1.1.2 HarmonyOS 诞生背景 002
1.1.3 HarmonyOS 发展历程 002
1.2 HarmonyOS 核心技术 003
1.2.1 一次开发,多端部署 004
1.2.2 可分可合,自由流转 005
1.2.3 统一生态,原生智能 007
1.3 HarmonyOS 技术体系 008
1.3.1 HarmonyOS 技术架构 008
1.3.2 HarmonyOS 技术生态 009
第2 章 开发第一个HarmonyOS 项目 010
2.1 DeEco Studio 搭建 010
2.1.1 DevEco Studio 简介 010
2.1.2 系统环境要求 011
2.1.3 DevEco Studio 下载与安装 011
2.1.4 诊断开发环境 013
2.1.5 启用中文插件 014
2.2 创建“Hello World”项目 016
2.2.1 创建项目 016
2.2.2 预览器运行 018
2.2.3 模拟器运行 020
2.2.4 真机运行 022
2.3 项目结构说明 023
2.3.1 HarmonyOS 项目目录结构视图 023
2.3.2 应用程序包结构 023
2.3.3 应用配置文件 026
第3 章 ArkTS 语言与应用 028
3.1 ArkTS 介绍 028
3.2 基础语法 028
3.2.1 变量与常量声明 028
3.2.2 数据类型 030
3.2.3 运算符 032
3.2.4 语句 033
3.2.5 函数 036
3.3 类 038
3.3.1 类的声明与使用 038
3.3.2 类的封装 038
3.3.3 类的继承 039
3.3.4 类的多态 040
3.3.5 this 关键字 041
3.4 接口 041
3.4.1 类型别名与接口 042
3.4.2 接口继承 042
3.5 泛型 043
3.5.1 泛型可以有多种 043
3.5.2 泛型支持接口定义 043
3.5.3 泛型支持类定义 044
3.6 空安全 044
3.6.1 非空断言运算符 045
3.6.2 空值合并运算符 045
3.6.3 可选链运算符 045
3.7 模块 046
第4 章 ArkUI 开发 048
4.1 ArkUI 声明式语法 048
4.1.1 简洁性 048
4.1.2 可预测性 049
4.1.3 响应式 050
4.1.4 易于调试与维护 051
4.2 ArkUI 项目目录结构分析 053
4.2.1 项目目录结构概述 054
4.2.2 关键目录和文件详解 054
4.3 UI 描述规范 055
4.3.1 布局规范 055
4.3.2 颜色规范 061
4.3.3 字体规范 062
4.4 组件化的概念 064
4.4.1 组件的定义与作用 064
4.4.2 组件的分类 068
4.5 组件化运用 072
4.5.1 组件化开发流程 072
4.5.2 组件化案例分析 079
第5 章 目标管理实现案例 084
5.1 组件状态和父子传参 085
5.1.1 页面效果展示 086
5.1.2 实例代码演示 087
5.2 父子组件双向传参和数据监听 090
5.2.1 页面效果展示 091
5.2.2 实例代码演示 092
5.3 数据动态添加和删除 096
5.3.1 页面效果展示 096
5.3.2 实例代码演示 097
5.4 数据更新和同步状态 101
5.4.1 页面效果展示 101
5.4.2 目标管理代码(全) 102
第6 章 组件开发 110
6.1 实例1:多层嵌套传参 110
6.1.1 多层嵌套的基本概念 110
6.1.2 双层嵌套传参的实现 111
6.1.3 多层嵌套传参的实现 112
6.1.4 多层嵌套传参的实例演示 113
6.1.5 多层嵌套传参的应用场景 116
6.2 实例2:样式封装和扩展属性 117
6.2.1 样式封装 118
6.2.2 扩展属性 118
6.3 实例3:封装型组件的设计与实现 119
6.3.1 封装型组件案例演示 119
6.3.2 性能优化与AttributeModifier 引入 121
6.4 实例4:类中属性的双向绑定 123
6.4.1 文本输入框选项 124
6.4.2 案例演示 125
第7 章 布局与页面传参 128
7.1 实例5:堆叠布局应用 128
7.1.1 堆叠布局 128
7.1.2 堆叠布局的具体实现步骤 129
7.1.3 Z 序堆叠控制 131
7.2 实例6:列表布局应用 132
7.2.1 列表布局 132
7.2.2 典型应用场景 133
7.3 实例7:弹性布局应用 136
7.3.1 弹性布局 136
7.3.2 弹性布局的基本用法 136
7.3.3 弹性布局的应用场景 139
7.3.4 实战扩展 141
7.4 实例8:个人资料修改 141
7.4.1 准备工作 141
7.4.2 数据模型 141
7.4.3 页面布局 142
7.4.4 页面跳转和路由传参 146
7.4.5 页面导航 147
7.4.6 完整的项目结构 148
7.4.7 运行与测试 148
7.4.8 扩展练习 149
第8 章 信息类组件应用 150
8.1 实例9:显示商品列表页 150
8.1.1 页面效果 150
8.1.2 实例代码 151
8.2 实例10:信息标记组件 153
8.2.1 页面效果 153
8.2.2 实例代码 154
8.3 实例11:显示行内图片 156
8.3.1 页面效果 156
8.3.2 实例代码 156
8.4 实例12:行中分割线 157
8.4.1 页面效果 157
8.4.2 实例代码 157
8.5 实例13:轮播显示效果 158
8.5.1 页面效果 158
8.5.2 实例代码 158
第9 章 列表显示和加载 160
9.1 实例14:商品列表页 160
9.1.1 需求分析 160
9.1.2 应用效果 161
9.1.3 代码实现 161
9.1.4 源码分析 165
9.2 实例15:待办列表页 166
9.2.1 需求分析 166
9.2.2 应用效果 166
9.2.3 代码实现 166
9.2.4 源码分析 173
9.3 实例16:显示商品列表页 174
9.3.1 需求分析 174
9.3.2 应用效果 174
9.3.3 代码实现 174
9.3.4 源码分析 184
9.4 实例17:下拉刷新组件 184
9.4.1 需求分析 184
9.4.2 应用效果 185
9.4.3 代码实现 185
9.4.3 源码分析 191
9.5 实例18:Grid 组件 192
9.5.1 需求分析 192
9.5.2 应用效果 192
9.5.3 代码实现 192
9.5.4 源码分析 196
第10 章 动画和其他组件效果 197
10.1 实例19:图片大小变换过渡效果 197
10.1.1 显式动画 197
10.1.2 应有效果 198
10.1.3 代码实现 198
10.2 实例20:通过关键帧动画改变组件旋转角度 199
10.2.1 关键帧动画 199
10.2.2 应用效果 200
10.2.3 代码实现 201
10.3 实例21:一段正在进行跑马灯的文本 202
10.3.1 跑马灯组件 202
10.3.2 应用效果 203
10.3.3 代码实现 203
10.4 实例22:一个简易的图案密码锁 204
10.4.1 图案密码锁 204
10.4.2 应用效果 205
10.4.3 代码实现 205
10.5 实例23:一个仿资讯类瀑布流 207
10.5.1 创建瀑布流布局 207
10.5.2 应用效果 208
10.5.3 代码实现 208
第11 章 数据存储 211
11.1 实例24:首选项数据存储 211
11.1.1 用户首选项对数据存储的作用 211
11.1.2 用户首选项的优势 211
11.1.3 代码实现 212
11.2 实例25:关系型数据库存储 214
11.2.1 关系型数据库的作用 214
11.2.2 关系型数据库的优势 214
11.2.3 代码实现 215
11.4 实例26:分布式数据库存储 218
11.4.1 分布式键值数据库的应用 218
11.4.2 分布式数据库的特点 219
11.4.3 代码实现 219
第12 章 公共事件与通知 222
12.1 实例27:使用ArkTS 实现公共事件服务 222
12.1.1 公共事件服务概述 222
12.1.2 公共事件服务接口 223
12.1.3 实例演示 224
12.2 实例28:事件发布 228
12.2.1 事件发布概述 228
12.2.2 准备工作 228
12.2.3 编码实现 229
12.2.4 运行和测试 230
12.3 实例29:订阅和取消订阅事件 231
12.3.1 订阅和取消订阅概述 231
12.3.2 准备工作 231
12.3.3 小试牛刀 231
12.3.4 实例演示 233
12.4 实例30:通知服务和接口 235
12.4.1 通知服务基本概述 235
12.4.2 通知服务基本类型 236
12.4.3 发送通知的方法 236
12.4.4 处理通知的回调接口 238
12.4.5 通知权限的管理 239
12.5 实例31:后台代理提醒 239
12.5.1 后台代理提醒概述 239
12.5.2 后台代理提醒实现流程 240
12.5.3 准备工作 240
12.5.4 编码实现 240
第13 章 多媒体开发 244
13.1 实例32:制作音乐播放器 244
13.1.1 列表布局界面 245
13.1.2 公共模块 248
13.1.3 列表播放控件 256
13.1.4 播放详情页 258
13.2 实例33:制作视频播放器 266
13.2.1 播放工具类 267
13.2.2 播放页面 269
第14 章 网络访问应用 277
14.1 实例34:HTTP 通信和Web 组件请求 277
14.1.1 需求分析 277
14.1.2 应用效果 278
14.1.3 代码实现 278
14.1.4 源码分析 303
14.2 实例35:socket 制作即时通信 303
14.2.1 需求分析 303
14.2.2 应用效果 304
14.2.3 代码实现 304
14.2.4 源码分析 310
14.3 实例36:WebSocket 聊天室功能 311
14.3.1 需求分析 311
14.3.2 应用效果 311
14.3.3 代码实现 312
14.3.4 源码分析 323
14.4 实例37:滚动加载和缓存数据 324
14.4.1 需求分析 324
14.4.2 应用效果 324
14.4.3 代码实现 324
14.4.4 源码分析 330
第15 章 案例38:电商App 开发 332
15.1 App 首页开发 332
15.1.1 前置准备工作 333
15.1.2 App 根组件页面构建 338
15.1.3 首页内容构建 340
15.2 下单页面开发 343
15.2.1 下单页面:商品分类 344
15.2.2 下单页面:商品列表 345
15.3 下单功能与购物车功能 351
15.3.1 下单功能 351
15.3.2 购物车功能 358
15.3.2 下单结算功能 362
15.4 “我的”页面开发 363
15.4.1 应有效果 363
15.4.2 代码实现 364