目 录
第 1 章 鸿蒙开发环境搭建 1
1.1 鸿蒙系统开发简介 1
1.1.1 鸿蒙系统的发展历程 1
1.1.2 鸿蒙系统的三大特性 2
1.1.3 鸿蒙系统的总体架构 3
1.1.4 鸿蒙应用的技术理念 5
1.2 搭建DevEco Studio开发环境 7
1.2.1 计算机配置要求 7
1.2.2 安装DevEco Studio 7
1.2.3 DevEco Studio的常用设置 9
1.3 创建并编译鸿蒙App项目 11
1.3.1 创建鸿蒙App新项目 11
1.3.2 导入已有的项目 13
1.3.3 编译App项目 13
1.4 运行和调试鸿蒙App 14
1.4.1 及时修复错误代码 14
1.4.2 在预览器上运行App 15
1.4.3 查看App的运行日志 16
1.5 小结 17
1.6 动手练习 17
第 2 章 鸿蒙App开发基础 18
2.1 鸿蒙App的开发特点 18
2.1.1 App的运行环境 18
2.1.2 App的开发语言 19
2.1.3 App连接的数据库 20
2.2 鸿蒙App的项目结构 21
2.2.1 App项目目录结构 21
2.2.2 编译配置文件build-profile.json5 23
2.2.3 运行配置文件module.json5 24
2.3 鸿蒙App的调试打包 25
2.3.1 连接真机测试 26
2.3.2 给App添加开发签名 27
2.3.3 App的编译态和发布态 29
2.4 小结 32
2.5 动手练习 32
第 3 章 ArkTS语言编程基础 33
3.1 变量与对象 33
3.1.1 基本数据类型 33
3.1.2 数组类型 35
3.1.3 类及对象 36
3.2 控制结构 37
3.2.1 分支语句 37
3.2.2 循环语句 38
3.2.3 匿名函数 39
3.3 ETS页面开发 41
3.3.1 调用其他位置的代码 41
3.3.2 创建新的App页面 42
3.3.3 跳转到另一个页面 44
3.4 小结 45
3.5 动手练习 45
第 4 章 简单组件 46
4.1 文本显示 46
4.1.1 设置文本的内容 46
4.1.2 设置文本的大小 47
4.1.3 设置文本的颜色 50
4.2 组件基础 51
4.2.1 设置组件的宽高 51
4.2.2 设置宽高的权重 52
4.2.3 设置组件的间距 53
4.2.4 设置组件的对齐方式 54
4.3 常用容器 57
4.3.1 行/列容器 57
4.3.2 堆叠容器 57
4.3.3 相对容器 58
4.3.4 滚动容器 60
4.4 按钮触控 62
4.4.1 按钮组件 62
4.4.2 单击事件 63
4.4.3 数据绑定 66
4.5 实战项目:计算器 69
4.5.1 需求描述 69
4.5.2 界面设计 69
4.5.3 关键代码 69
4.6 小结 71
4.7 动手练习 71
第 5 章 页面转场 72
5.1 开关页面 72
5.1.1 页面的跳转和返回 72
5.1.2 页面的生命周期 73
5.1.3 页面的跳转模式 76
5.2 传递消息 78
5.2.1 发送请求参数 78
5.2.2 返回应答参数 79
5.2.3 事件总线中转消息 81
5.2.4 发射器中转消息 83
5.3 外部跳转 84
5.3.1 UIAbility 84
5.3.2 显式意图 86
5.3.3 隐式意图 87
5.3.4 拨号页面和通讯录页面 89
5.4 小结 91
5.5 动手练习 91
第 6 章 中级组件 92
6.1 图像显示 92
6.1.1 图像组件 92
6.1.2 九宫格特效 95
6.1.3 占位组件 96
6.1.4 几何图形组件 97
6.2 选择按钮 99
6.2.1 复选框 99
6.2.2 开关组件 101
6.2.3 单选框 103
6.3 文本输入 104
6.3.1 单行文本输入框 104
6.3.2 多行文本输入框 107
6.3.3 数据双向绑定 108
6.4 挑选组件 110
6.4.1 日期选择器 110
6.4.2 时间选择器 113
6.4.3 文本选择器 115
6.4.4 自定义对话框 117
6.5 实战项目:找回密码 119
6.5.1 需求描述 119
6.5.2 界面设计 120
6.5.3 关键代码 121
6.6 小结 123
6.7 动手练习 123
第 7 章 数据存储 124
7.1 首选项 124
7.1.1 读写首选项 124
7.1.2 实现记住密码功能 127
7.1.3 读写全局变量 128
7.2 数据库 129
7.2.1 SQL的基本语法 130
7.2.2 创建数据库 132
7.2.3 读写数据库 133
7.2.4 优化记住密码功能 138
7.3 文件操作 139
7.3.1 应用沙箱 139
7.3.2 读写文件 142
7.3.3 图片选择器 145
7.4 状态存储 147
7.4.1 页面级状态存储 147
7.4.2 应用级状态存储 149
7.4.3 持久化状态存储 152
7.5 实战项目:购物车 153
7.5.1 需求描述 154
7.5.2 功能分析 155
7.5.3 关键代码 156
7.6 小结 159
7.7 动手练习 159
第 8 章 高级组件 160
8.1 列表类容器 160
8.1.1 下拉列表 160
8.1.2 平铺列表 162
8.1.3 复杂列表 164
8.2 网格类容器 166
8.2.1 规则网格 166
8.2.2 不规则网格 168
8.2.3 瀑布流网格 169
8.3 滑块类容器 172
8.3.1 滑块容器 172
8.3.2 数字指示器 174
8.3.3 圆点指示器 176
8.4 页签类容器 178
8.4.1 页签容器 178
8.4.2 自定义页签 180
8.4.3 底部页签栏 182
8.5 实战项目:电商首页 184
8.5.1 需求描述 184
8.5.2 界面设计 184
8.5.3 关键代码 185
8.6 小结 186
8.7 动手练习 186
第 9 章 后台任务 187
9.1 权限管控 187
9.1.1 应用权限 187
9.1.2 振动器 188
9.1.3 日程管理 191
9.2 消息通知 195
9.2.1 简单消息 195
9.2.2 消息跳转 199
9.2.3 消息渠道 201
9.3 后台处理 204
9.3.1 简单延迟处理 205
9.3.2 后台代理提醒 206
9.3.3 后台任务管理 208
9.4 实战项目:仿录音笔 212
9.4.1 需求描述 212
9.4.2 功能分析 212
9.4.3 关键代码 212
9.5 小结 215
9.6 动手练习 215
第 10 章 手势交互 216
10.1 路由导航 216
10.1.1 接管返回键 216
10.1.2 顶部标题栏 217
10.1.3 底部工具栏 220
10.2 事件监控 223
10.2.1 触摸事件 223
10.2.2 画布绘图 225
10.2.3 手写签名 227
10.3 手势处理 228
10.3.1 手势种类 229
10.3.2 下拉刷新 236
10.3.3 上拉加载 237
10.4 实战项目:电子相册 239
10.4.1 需求描述 239
10.4.2 功能分析 240
10.4.3 关键代码 240
10.5 小结 242
10.6 动手练习 242
第 11 章 动画特效 243
11.1 帧动画 243
11.1.1 图像帧动画 243
11.1.2 动图动画 245
11.1.3 淡入淡出动画 246
11.2 渐进动画 247
11.2.1 属性动画 248
11.2.2 显式动画 251
11.2.3 关键帧动画 253
11.3 转场动画 255
11.3.1 页面转场动画 255
11.3.2 组件转场动画 258
11.3.3 共享元素转场 260
11.4 实战项目:打牌游戏 262
11.4.1 需求描述 262
11.4.2 功能分析 263
11.4.3 关键代码 264
11.5 小结 266
11.6 动手练习 266
第 12 章 网络通信 267
12.1 HTTP调用 267
12.1.1 JSON串转换 267
12.1.2 GET方式调用 269
12.1.3 POST方式调用 273
12.2 下载和上传 275
12.2.1 加载网络图片 275
12.2.2 下载文件 277
12.2.3 上传文件 280
12.3 即时通信 284
12.3.1 通过SocketIO传输文本 284
12.3.2 通过SocketIO传输图片 287
12.3.3 利用WebSocket传输消息 290
12.4 网页浏览 294
12.4.1 访问本地网页 294
12.4.2 访问外部网页 296
12.4.3 网页脚本交互 299
12.5 实战项目:仿微信的私聊和群聊 302
12.5.1 需求描述 302
12.5.2 功能分析 303
12.5.3 效果展示 308
12.6 小结 311
12.7 动手练习 311
第 13 章 多媒体 312
13.1 相片处理 312
13.1.1 查看相机信息 312
13.1.2 使用相机拍照 315
13.1.3 获取图片信息 317
13.2 视频处理 319
13.2.1 视频播放 319
13.2.2 使用相机录像 322
13.2.3 获取视频信息 324
13.3 音频处理 326
13.3.1 选择音频 326
13.3.2 播放音频 329
13.3.3 录制音频 332
13.4 实战项目:仿抖音的短视频分享 336
13.4.1 需求描述 336
13.4.2 功能分析 337
13.4.3 效果展示 341
13.5 小结 343
13.6 动手练习 343
第 14 章 感知定位 344
14.1 传感器 344
14.1.1 传感器的种类 344
14.1.2 摇一摇——加速度传感器 347
14.1.3 指南针——磁场传感器 348
14.1.4 其他常见的传感器 350
14.2 定位服务 355
14.2.1 开启定位功能 355
14.2.2 获取位置信息 357
14.2.3 全球卫星导航系统 360
14.3 地图导航 363
14.3.1 集成华为地图 364
14.3.2 显示地图面板 368
14.3.3 搜索地点信息 372
14.3.4 规划导航路线 376
14.4 实战项目:仿微信的附近的人 380
14.4.1 需求描述 381
14.4.2 功能分析 382
14.4.3 效果展示 385
14.5 小结 387
14.6 动手练习 387
第 15 章 人工智能 388
15.1 智能语音 388
15.1.1 文本转语音 388
15.1.2 语音识别 391
15.1.3 文本朗读 394
15.1.4 智能字幕 397
15.2 智能视觉 399
15.2.1 扫描二维码 399
15.2.2 文字识别 402
15.2.3 图像分类 404
15.3 人脸识别 407
15.3.1 人脸检测 407
15.3.2 人脸比对 410
15.3.3 活体检测 413
15.4 小结 416
15.5 动手练习 416
第 16 章 多端部署 417
16.1 界面级一多 417
16.1.1 布局能力 417
16.1.2 资源使用 419
16.1.3 交互归一 424
16.2 功能级“一多” 425
16.2.1 系统能力 425
16.2.2 动态逻辑判断 426
16.2.3 配置能力集 426
16.3 项目级“一多” 427
16.3.1 应用程序包结构 427
16.3.2 部署模型分类 428
16.3.3 代码项目结构 428
16.4 应用上架与元服务 429
16.4.1 打包上架 429
16.4.2 元服务概述 432
16.4.3 开发元服务 435
16.5 小结 437
16.6 动手练习 437
附录A 鸿蒙开发专业术语索引 438
附录B 本书的服务端程序说明 442
参考文献 444
