鸿蒙之光HarmonyOS NEXT原生应用开发入门

本网站不提供下载链接,喜欢看书的朋友请关注公众号:【lennylee的碎碎念】(lennyleede),首页回复:授人以渔,自动获取搜索资源的方法。

内容简介:

《鸿蒙之光HarmonyOS NEXT原生应用开发入门》以HarmonyOS NEXT版本为核心,从基础知识到实战案例,引领读者逐步探索“纯血鸿蒙”原生开发的奥秘。全书共16章,内容涵盖HarmonyOS架构、DevEco Studio使用、应用结构解析、ArkTS编程语言、Ability组件、ArkUI开发、公共事件处理、窗口管理、网络编程、安全管理、数据管理、多媒体开发、多端部署及应用测试等关键主题。书中不仅详细阐述了相关理论知识,还结合了多个实战项目,如计算器开发、WeLink打卡系统、图片轮播播放器、购物车功能实现、录音机与音乐播放器创建、购物应用设计与微信应用模拟、图片查看器构建等,旨在通过实际操作提升读者的动手能力和解决实际问题的能力。

此外,《鸿蒙之光HarmonyOS NEXT原生应用开发入门》附赠完整的源代码和PPT课件,所有代码均经过严格测试验证,确保能够顺利运行并达到预期效果。

《鸿蒙之光HarmonyOS NEXT原生应用开发入门》技术新颖,案例丰富,突出实战,特别适合HarmonyOS应用开发初学者、爱好者和进阶者作为自学用书,也适合作为培训机构和大中专院校的教学用书。

作者简介:

第 1 章 初识HarmonyOS NEXT 1
1.1 HarmonyOS产生的背景 1
1.1.1 万物互联时代的新挑战 1
1.1.2 什么是HarmonyOS 2
1.1.3 HarmonyOS应用开发 3
1.2 HarmonyOS核心技术理念 3
1.2.1 一次开发,多端署 4
1.2.2 可分可合,自由流转 6
1.2.3 统一生态,原生智能 7
1.3 HarmonyOS NEXT新性 7
1.3.1 Stage模型 8
1.3.2 Ability组件的生命周期 8
1.3.3 ArkUI开发框架 9
1.3.4 ArkTS编程语言 10
1.3.5 ArkWeb 10
1.3.6 “纯血鸿蒙”解读 10
1.4 DevEco Studio的安装 11
1.4.1 下载DevEco Studio 11
1.4.2 安装DevEco Studio 11
1.4.3 配置DevEco Studio 12
1.4.4 创建虚拟机 13
1.5 实战:创建第一个HarmonyOS NEXT应用 18
1.5.1 选择创建新项目 18
1.5.2 选择模板 18
1.5.3 配置项目信息 19
1.5.4 自动生成工程代码 20
1.5.5 预览项目 20
1.5.6 运行项目 21
1.6 应用工程结构介绍 22
1.6.1 App结构 22
1.6.2 工程级目录 23
1.6.3 entry模块级目录 23
1.6.4 配置文件 23
1.7 本章小结 26
1.8 上机练习:开发第一个HarmonyOS NEXT应用——Hello World 26
第 2 章 ArkTS语言基础 27
2.1 基本知识 27
2.1.1 声明 27
2.1.2 类型 28
2.1.3 运算符 30
2.1.4 语句 32
2.2 函数 36
2.2.1 函数声明 36
2.2.2 可选参数 36
2.2.3 rest参数 36
2.2.4 返回类型 37
2.2.5 函数的作用域 37
2.2.6 函数调用 37
2.2.7 函数类型 37
2.2.8 箭头函数 37
2.2.9 闭 38
2.2.10 函数重载 38
2.3 类 38
2.3.1 字段 39
2.3.2 方法 41
2.3.3 构造函数 44
2.3.4 可见性修饰符 44
2.3.5 对象字面量 45
2.3.6 Record类型的对象字面量 46
2.4 接口 46
2.4.1 接口属性 47
2.4.2 接口继承 47
2.5 泛型类型 48
2.5.1 泛型类和泛型接口 48
2.5.2 泛型约束 48
2.5.3 泛型函数 48
2.5.4 泛型默认值 49
2.6 空 49
2.6.1 非空断言运算符 50
2.6.2 空值合并运算符 50
2.6.3 可选链 50
2.7 模块 51
2.7.1 导出 51
2.7.2 导入 51
2.7.3 层语句 53
2.8 本章小结 53
2.9 上机练习:统计字符串的字符数 53
第 3 章 Ability开发 54
3.1 Ability概述 54
3.1.1 单Ability应用和多Ability应用 54
3.1.2 HarmonyOS应用模型 55
3.2 FA模型介绍 55
3.2.1 FA模型中的Ability 55
3.2.2 FA模型的生命周期 56
3.2.3 FA模型的进程/线程模型 56
3.3 Stage模型介绍 57
3.3.1 Stage模型的设计思想 57
3.3.2 Stage模型的基本概念 58
3.4 UIAbility介绍 59
3.4.1 UIAbility的生命周期 59
3.4.2 UIAbility的启动模式 59
3.4.3 UIAbility组件的基本用法 60
3.5 Want概述 62
3.5.1 Want的用途 62
3.5.2 Want的类型 63
3.5.3 Want的参数及属性 64
3.6 实战:显式Want启动Ability 65
3.6.1 新建Ability内页面 65
3.6.2 新建Ability 66
3.6.3 使用显式Want启动Ability 66
3.6.4 运行 67
3.7 本章小结 68
3.8 上机练习:启动系统设置 68
第 4 章 ArkUI基础开发 69
4.1 ArkUI概述 69
4.1.1 ArkUI基本概念 69
4.1.2 ArkUI主要征 70
4.1.3 JS、TS、ArkTS、ArkUI、ArkCompiler之间的联系 70
4.2 声明式开发范式 72
4.2.1 声明式开发范式与类Web开发范式 72
4.2.2 声明式开发范式的基础 72
4.2.3 声明式开发范式的整体架构 72
4.2.4 声明式开发范式的基本组成 73
4.3 常用组件 74
4.4 基础组件详解 74
4.4.1 Blank 75
4.4.2 Button 75
4.4.3 Checkbox 76
4.4.4 CheckboxGroup 77
4.4.5 DataPanel 78
4.4.6 DatePicker 78
4.4.7 Divider 79
4.4.8 Gauge 80
4.4.9 Image 81
4.4.10 ImageAnimator 83
4.4.11 LoadingProgress 85
4.4.12 Marquee 85
4.4.13 Navigation 86
4.4.14 PatternLock 86
4.4.15 Progress 87
4.4.16 QRCode 88
4.4.17 Radio 88
4.4.18 Rating 89
4.4.19 RichText 89
4.4.20 ScrollBar 90
4.4.21 Search 91
4.4.22 Select 91
4.4.23 Slider 92
4.4.24 Span 92
4.4.25 Stepper与StepperItem 94
4.4.26 Text 95
4.4.27 TextArea 96
4.4.28 TextClock 97
4.4.29 TextInput 97
4.4.30 TextPicker 98
4.4.31 TextTimer 98
4.4.32 TimePicker 99
4.4.33 Toggle 99
4.4.34 Web 100
4.4.35 SymbolGlyph 101
4.5 本章小结 103
4.6 上机练习:实现高仿WeLink打卡应用 103
第 5 章 ArkUI高级开发 104
5.1 渲染控制 104
5.1.1 if/else条件渲染 104
5.1.2 ForEach循环渲染 105
5.2 容器组件详解 107
5.2.1 Column和Row 107
5.2.2 ColumnSplit和RowSplit 108
5.2.3 Flex 109
5.2.4 Grid和GridItem 110
5.2.5 GridRow和GridCol 111
5.2.6 List、ListItem和ListItemGroup 112
5.2.7 AlphabetIndexer 113
5.2.8 Badge 115
5.2.9 Counter 116
5.2.10 Navigator 117
5.2.11 Refresh 119
5.2.12 RelativeContainer 120
5.2.13 Scroll 121
5.2.14 SideBarContainer 122
5.2.15 Stack 123
5.2.16 Swiper 123
5.2.17 Tabs和TabContent 124
5.3 媒体组件详解 125
5.4 绘制组件详解 128
5.4.1 Circle和Ellipse 128
5.4.2 Line 129
5.4.3 Polyline 130
5.4.4 Polygon 131
5.4.5 Path 132
5.4.6 Rect 134
5.4.7 Shape 135
5.5 画布组件详解 137
5.6 常用布局 138
5.6.1 自适应布局 139
5.6.2 响应式布局 140
5.7 实战:使用ArkUI实现“登录”界面 140
5.7.1 使用Column容器实现整体布局 141
5.7.2 使用Image组件实现标志展示 141
5.7.3 使用TextInput组件实现账号和密码的输入 141
5.7.4 使用Button组件实现“登录”按钮 142
5.7.5 使用Text组件实现“注册”按钮 142
5.7.6 完整代码 142
5.8 实战:使用ArkUI实现“计算器”应用 143
5.8.1 新增Calculator.ets的文件 143
5.8.2 实现递归运算 144
5.8.3 实现输入字符串转为字符串数组 145
5.8.4 新增CalculatorButtonInfo.ets文件 146
5.8.5 实现CalculatorButton组件 146
5.8.6 构造整体页面 147
5.8.7 运行 148
5.9 本章小结 148
5.10 上机练习:实现图片轮播播放器应用 149
第 6 章 公共事件 150
6.1 公共事件概述 150
6.1.1 公共事件的分类 150
6.1.2 公共事件的开发 151
6.2 实战:订阅、发布、取消公共事件 152
6.2.1 添加按钮 152
6.2.2 添加Text组件显示接收的事件 153
6.2.3 设置按钮的单击事件方法 153
6.2.4 运行 154
6.3 Emitter概述 155
6.3.1 订阅 155
6.3.2 取消订阅 155
6.3.3 发送事件 156
6.4 实战:使用Emitter进行线程间通信 156
6.4.1 添加按钮 156
6.4.2 添加Text组件显示接收的事件 156
6.4.3 设置按钮的单击事件方法 157
6.4.4 运行 157
6.5 本章小结 158
6.6 上机练习:实现购物车应用 158
第 7 章 窗口管理 160
7.1 窗口开发概述 160
7.1.1 窗口的分类 160
7.1.2 窗口模块的用途 160
7.1.3 窗口沉浸式 161
7.1.4 应用窗口模式 161
7.2 窗口管理 162
7.2.1 设置应用主窗口属性及目标页面 162
7.2.2 设置应用子窗口属性及目标页面 162
7.2.3 体验窗口沉浸式 162
7.2.4 设置悬浮窗 163
7.2.5 监听窗口不可交互与可交互事件 163
7.3 实战:实现窗口沉浸式效果 163
7.3.1 获取应用主窗口 163
7.3.2 实现沉浸式效果 164
7.3.3 运行 165
7.4 智慧多窗 165
7.4.1 悬浮窗 165
7.4.2 分屏 168
7.5 本章小结 168
7.6 上机练习:创建子窗口 169
第 8 章 网络编程 170
8.1 HTTP数据请求概述 170
8.1.1 HTTP请求方法 170
8.1.2 HTTP状态码 171
8.2 实战:通过HTTP请求数据 171
8.2.1 准备一个HTTP服务接口 171
8.2.2 添加使用Button组件来触发单击 171
8.2.3 发起HTTP请求 172
8.2.4 增加权限 172
8.2.5 运行 173
8.3 Web组件概述 173
8.3.1 加载本地网页 173
8.3.2 加载在线网页 174
8.3.3 隐私模式加载在线网页 174
8.3.4 网页缩放 174
8.3.5 文本缩放 175
8.3.6 Web组件事件 175
8.3.7 Web和JavaScript交互 175
8.3.8 处理页面导航 179
8.4 实战:Web组件加载在线网页 179
8.4.1 准备一个在线网页地址 179
8.4.2 声明网络访问权限 180
8.4.3 发起HTTP请求 180
8.4.4 运行 180
8.5 本章小结 180
8.6 上机练习:实现一个Web组件展示HTML页面的应用 181
第 9 章 管理 182
9.1 访问控制概述 182
9.1.1 权限含的基本概念 182
9.1.2 权限等级说明 183
9.1.3 权限类型 184
9.1.4 权限列表 184
9.2 访问控制开发步骤 191
9.2.1 权限申请流程 191
9.2.2 权限申请 191
9.2.3 权限授权 192
9.3 实战:访问控制授权 192
9.3.1 场景介绍 192
9.3.2 声明访问的权限 193
9.3.3 申请授权user_grant权限 193
9.3.4 运行 195
9.4 本章小结 195
9.5 上机练习:使用麦克风 195
第 10 章 数据管理 196
10.1 分布式数据服务概述 196
10.1.1 分布式数据服务的基本概念 196
10.1.2 分布式数据服务运作机制 198
10.1.3 分布式数据服务约束与限制 199
10.2 分布式数据服务开发步骤 199
10.2.1 导入模块 199
10.2.2 构造分布式数据库管理类实例 200
10.2.3 获取/创建分布式数据库 200
10.2.4 订阅分布式数据库数据变化 201
10.2.5 将数据写入分布式数据库 201
10.2.6 查询分布式数据库数据 202
10.3 关系数据库概述 202
10.3.1 关系数据库的基本概念 202
10.3.2 运作机制 203
10.3.3 默认配置与限制 203
10.4 实战:关系数据库开发 203
10.4.1 作RdbStore 203
10.4.2 账目信息的表示 206
10.4.3 作账目信息表 206
10.4.4 设计界面 208
10.4.5 运行 209
10.5 用户选项概述 210
10.5.1 用户选项运作机制 210
10.5.2 约束与限制 211
10.6 实战:用户选项开发 211
10.6.1 作Preferences 211
10.6.2 账目信息的表示 213
10.6.3 设计界面 213
10.6.4 运行 215
10.7 本章小结 216
10.8 上机练习:使用分布式数据服务 216
第 11 章 多媒体开发 217
11.1 音频开发 217
11.1.1 音频开发的基本概念 217
11.1.2 音频播放开发指导 217
11.1.3 如何选择音频播放开发方式 219
11.1.4 AudioRenderer开发步骤 219
11.1.5 如何选择音频录制开发方式 221
11.1.6 AudioCapturer开发步骤 221
11.2 图片开发 223
11.2.1 图片开发的基本概念 223
11.2.2 图片开发的主要流程 223
11.2.3 图片解码 224
11.2.4 图像变换 226
11.2.5 位图作 229
11.2.6 图片编码 231
11.2.7 图片工具231
11.3 视频开发232
11.3.1 视频开发指导232
11.3.2 视频开发步骤233
11.4 实战:实现音乐播放器238
11.4.1 获取本地音乐238
11.4.2 音乐播放控制239
11.4.3 创建播放器界面240
11.4.4 运行241
11.5 本章小结242
11.6 上机练习:实现录音机应用242
第 12 章 一次开发,多端部署243
12.1 “一多”简介243
12.1.1 背景243
12.1.2 定义及目标243
12.1.3 基础知识244
12.2 布局能力245
12.2.1 自适应布局246
12.2.2 响应式布局247
12.3 实战:图片查看器的一多UI原型设计247
12.3.1 UX设计247
12.3.2 计算设备的类型249
12.3.3 实现顶部区域UI原型250
12.3.4 实现中部图片显示区UI原型251
12.3.5 实现图片预览列表UI原型252
12.3.6 实现操作栏UI原型252
12.4 本章小结253
12.5 上机练习:实现图片查看器UI原型253
第 13 章 应用测试254
13.1 应用测试概述254
13.2 单元测试254
13.2.1 单元测试框架功能特性254
13.2.2 基本流程255
13.2.3 断言库256
13.2.4 自定义断言259
13.3 UI测试260
13.3.1 UI测试框架的功能特性260
13.3.2 Driver类使用说明261
13.3.3 On类使用说明262
13.3.4 Component类使用说明263
13.3.5 UiWindow类使用说明263
13.4 实战:UI测试264
13.4.1 编写UI测试脚本264
13.4.2 运行UI测试脚本265
13.5 本章小结267
13.6 上机练习:“统计字符串的字符数”的UI测试267
第 14 章 综合实战(1):仿应用268
14.1 仿应用概述268
14.1.1 “”页面268
14.1.2 “联系人”页面268
14.1.3 “发现”页面269
14.1.4 “我”页面270
14.2 实战:“”页面270
14.2.1 创建“”页面ChatPage270
14.2.2 定义联系人Person271
14.2.3 定义联系人数据271
14.2.4 定义样式272
14.3 实战:“联系人”页面273
14.3.1 创建“联系人”页面ContactPage273
14.3.2 定义样式274
14.4 实战:“发现”页面275
14.4.1 创建“发现”页面DiscoveryPage275
14.4.2 定义样式276
14.5 实战:“我”页面277
14.6 实战:组装所有页面278
14.6.1 Tabs组件作为导航栏278
14.6.2 Swiper组件实现页面滑动279
14.7 本章小结280
14.8 上机练习:实现一个仿界面效果的应用280
第 15 章 综合实战(2):一多图片查看器281
15.1 UX设计281
15.2 架构设计282
15.2.1 模块的依赖关系283
15.2.2 修改Module类型及其设备类型284
15.3 pictureView模块实现285
15.3.1 实现顶部区域285
15.3.2 实现中部图片显示区286
15.3.3 实现图片预览列表287
15.3.4 实现底部区域操作栏288
15.3.5 尺寸适配290
15.3.6 常量和接口290
15.4 base模块实现292
15.4.1 基础常量类292
15.4.2 设备类型常量293
15.4.3 设备尺寸类型293
15.5 default模块实现294
15.5.1 图片查看器主页294
15.5.2 计算设备的类型294
15.6 本章小结295
15.7 上机练习:图片查看器295
第 16 章 综合实战(3):购物应用296
16.1 购物应用概述296
16.1.1 购物应用功能296
16.1.2 购物应用效果展示296
16.2 实战:实现商品列表页签297
16.2.1 应用首页298
16.2.2 创建模型298
16.2.3 创建组件304
16.3 实战:实现购物车页签307
16.3.1 创建一个页面307
16.3.2 创建组件307
16.4 实战:实现“我的”页签309
16.4.1 创建一个页面310
16.4.2 创建组件310
16.5 实战:商品详情页面313
16.5.1 创建一个页面313
16.5.2 创建组件314
16.5.3 设置路由318
16.6 本章小结319
16.7 上机练习:实现一个购物应用319
附录 模拟器与真机的差异320
参考文献324
· · · · · · (收起)

原文摘录: