目 录
第 1 章 HarmonyOS介绍 1
1.1 HarmonyOS的发展历程 1
1.2 HarmonyOS的设计理念 2
1.3 HarmonyOS的整体架构 3
1.4 HarmonyOS的技术特性 6
1.5 HarmonyOS的应用场景 7
第 2 章 应用开发准备 8
2.1 开发环境搭建 8
2.1.1 下载DevEco Studio 8
2.1.2 安装DevEco Studio 9
2.2 创建工程 11
2.3 DevEco Studio界面简介 12
2.4 运行Hello World工程 14
2.5 应用工程结构介绍 18
2.5.1 工程级目录 18
2.5.2 模块级目录 19
2.5.3 app.json5 20
2.5.4 module.json5 20
2.5.5 main_pages.json 23
2.6 应用/服务开发流程 24
第 3 章 学习ArkTS语言 25
3.1 ArkTS语言及其基本组成 25
3.1.1 ArkTS语言简介 25
3.1.2 ArkTS的基本组成 26
3.2 声明 27
3.2.1 变量、常量与自动类型推断 27
3.2.2 数据类型 28
3.2.3 运算符 31
3.2.4 语句 32
第 4 章 认识UIAbility组件 37
4.1 UIAbility组件概述 37
4.2 UIAbility组件生命周期 38
4.2.1 Create状态 38
4.2.2 WindowStageCreate和WindowStageDestroy状态 39
4.2.3 WindowStageWillDestroy状态 41
4.2.4 Foreground和Background状态 41
4.2.5 Destroy状态 42
4.2.6 自定义组件生命周期 42
4.3 UIAbility组件的用法与数据传递 44
4.3.1 指定UIAbility的启动页面 44
4.3.2 获取UIAbility的上下文信息 44
4.3.3 使用EventHub进行数据通信 45
4.3.4 使用AppStorage/LocalStorage进行数据同步 47
4.4 应用内页面跳转及数据交互 48
4.4.1 启动应用内的UIAbility 48
4.4.2 启动应用内的UIAbility并获取返回结果 50
4.4.3 启动UIAbility的指定页面 51
4.5 UIAbility组件启动模式 54
4.5.1 Singleton启动模式 55
4.5.2 Multiton启动模式 56
4.5.3 Specified启动模式 56
第 5 章 ArkUI概述与布局 59
5.1 ArkUI概述 59
5.2 ArkTS声明式开发范式 61
5.2.1 声明式开发范式的基本组成 61
5.2.2 声明式开发范式的特点 62
5.2.3 声明式开发范式的整体架构 62
5.2.4 声明式开发范式的开发流程 63
5.2.5 声明式开发范式的通用规则 64
5.3 布局设计 64
5.4 布局详解 67
5.4.1 线性布局(Row/Column) 68
5.4.2 层叠布局(Stack) 77
5.4.3 弹性布局(Flex) 80
5.4.4 相对布局(RelativeContainer) 89
5.4.5 栅格布局(GridRow/GridCol) 93
5.4.6 网格布局(Grid/GridItem) 99
5.4.7 创建列表(List) 107
5.4.8 创建轮播(Swiper) 125
5.4.9 选项卡(Tabs) 130
5.5 沉浸式效果 136
5.5.1 窗口全屏布局方案 137
5.5.2 组件安全区方案 140
第 6 章 ArkUI基础 144
6.1 基础组件 144
6.1.1 Blank 144
6.1.2 Text/Span 146
6.1.3 TextInput/TextArea 152
6.1.4 Button 154
6.1.5 Radio 157
6.1.6 Toggle 159
6.1.7 Progress 160
6.1.8 Image 162
6.2 媒体组件 172
6.2.1 Vedio 172
6.2.2 Audio 177
6.3 绘制组件 181
6.4 画布组件 187
6.4.1 使用画布组件绘制自定义图形 187
6.4.2 初始化画布组件 191
6.4.3 画布组件绘制方式 191
6.4.4 画布组件常用方法 192
6.5 实战:使用ArkUI实现登录页面 195
6.5.1 使用Column容器实现整体布局 195
6.5.2 使用Image组件实现标志展示 195
6.5.3 使用TextInput组件实现账号和密码的输入 195
6.5.4 实现“登录”按钮和“注册”按钮 196
6.5.5 实现其他登录方式 196
6.5.6 完整代码 196
第 7 章 ArkUI进阶 199
7.1 气泡和菜单 199
7.1.1 气泡提示(Popup) 199
7.1.2 菜单(Menu) 203
7.2 使用弹出框 205
7.2.1 使用全局弹出框 206
7.2.2 不依赖UI组件的全局自定义弹出框(推荐) 208
7.2.3 自定义弹出框(CustomDialog) 212
7.3 支持交互事件 220
7.3.1 交互事件概述 220
7.3.2 通用事件介绍 221
7.3.3 触屏事件 224
7.3.4 鼠标键盘事件 226
7.3.5 焦点事件 236
7.3.6 拖曳事件 251
7.3.7 手势事件介绍 259
7.4 支持适老化 274
7.4.1 基本概念 274
7.4.2 使用约束 274
7.4.3 适配适老化的组件及触发方式 275
7.4.4 SideBarContainer示例 275
7.4.5 TextPickerDialog示例 277
7.5 主题设置 279
7.5.1 应用深浅色适配 279
7.5.2 设置应用内主题换肤 281
第 8 章 公共事件 287
8.1 公共事件简介 287
8.2 动态订阅公共事件 289
8.3 取消动态订阅公共事件 290
8.4 发布公共事件 291
第 9 章 网络服务 293
9.1 HTTP数据请求 293
9.1.1 request接口开发步骤 293
9.1.2 requestInStream接口开发步骤 295
9.1.3 证书锁定 297
9.2 实战:HTTP请求获取网络天气信息 298
9.2.1 获取数据接口 299
9.2.2 配置开发环境 299
9.2.3 创建对象存储数据 300
9.2.4 创建获取天气类 301
9.2.5 创建天气显示界面 302
9.3 WebSocket连接 308
9.4 MDNS管理 310
9.4.1 管理本地服务 310
9.4.2 发现本地服务 311
9.5 网络连接管理 313
9.5.1 基本概念与典型场景 313
9.5.2 接收指定网络的状态变化通知 313
9.5.3 监控默认网络变化并主动重建网络连接 314
9.5.4 获取所有注册的网络 317
9.5.5 根据数据网络查询网络的能力信息及连接信息 317
9.5.6 使用对应网络解析域名,获取所有IP地址 320
9.6 流量管理 320
第 10 章 安全管理 322
10.1 程序访问控制 322
10.1.1 访问控制 322
10.1.2 应用权限管控 323
10.1.3 申请应用权限 325
10.1.4 向用户申请授权 329
10.2 使用安全控件 332
10.2.1 安全控件概述 332
10.2.2 使用粘贴控件 335
10.2.3 使用保存控件 336
10.2.4 使用位置控件 338
第 11 章 ArkData数据管理 341
11.1 ArkData概述 341
11.1.1 ArkData简介 341
11.1.2 运作机制 342
11.2 标准化数据定义 343
11.2.1 标准化数据类型 343
11.2.2 标准化数据结构 349
11.3 应用数据持久化 351
11.3.1 应用数据持久化概述 351
11.3.2 通过用户首选项实现数据持久化 351
11.3.3 通过键值型数据库实现数据持久化 354
11.3.4 通过关系型数据库实现数据持久化 358
11.4 同应用跨设备数据同步(分布式) 365
11.4.1 同应用跨设备数据同步概述 365
11.4.2 键值型数据库跨设备数据同步 365
11.4.3 关系型数据库跨设备数据同步 371
第 12 章 设备管理器 375
12.1 传感器 375
12.1.1 传感器开发概述 375
12.1.2 传感器类型 375
12.1.3 传感器运作机制 377
12.1.4 传感器开发步骤 378
12.2 振动 379
12.2.1 振动开发概述 379
12.2.2 振动运作机制 379
12.2.3 振动效果说明 379
12.2.4 振动开发步骤 381
12.3 状态栏开放服务 385
12.3.1 场景介绍 385
12.3.2 开发步骤 385
第 13 章 实战案例:购物应用 390
13.1 购物应用概述 390
13.1.1 购物流程说明 390
13.1.2 主要功能 390
13.2 项目框架设计 391
13.3 首页内容展示 392
13.4 实现消息列表和消息详情 396
13.4.1 消息列表展示 396
13.4.2 消息详情展示 398
13.5 实现购物车页面 402
13.6 实现“我的”页面 403
13.6.1 个人信息功能实现 403
13.6.2 订单信息 405
13.6.3 订单详情 406
13.6.4 设置页面 406
13.7 实现商品详情页面 407
第 14 章 实战案例:聊天应用 410
14.1 仿微信聊天应用概述 410
14.2 主页架构设计 411
14.3 实现“微信”页面 413
14.3.1 顶部ToolBar 413
14.3.2 聊天列表 414
14.3.3 聊天记录 414
14.4 实现“通讯录”页面 419
14.4.1 基础布局 419
14.4.2 索引模块实现 419
14.5 实现“发现”页面 420
14.6 实现“我”页面 421
14.6.1 个人基本信息 421
14.6.2 二维码页面 422
14.6.3 其他信息 424
