图书目录

目    录

第 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