从零基础到项目实战,掌握HarmonyOS 6新特性,资深开发专家老卫带你飞。

本书内容

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

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

本书作者

柳伟卫,网名老卫、WayLau,在IT公司担任过项目经理、架构师、高级技术顾问等,拥有十余年软件开发管理及系统架构经验。主导过多个省、国家级大型分布式系统的设计与研发,参与过面向全球的供应链系统服务化改造项目,在实际工作中,累积了丰富的分布式系统、微服务架构以及性能调优的实战经验。

业余时间创立了waylau.com网站,用于分享个人技术心得。长期活跃于各大开源社区,编写了包括《跟老卫学HarmonyOS开发》《Netty 实战(精髓)》在内的30余本开源技术教程,是CSDN、开源中国、阿里云开发者、华为开发者等技术社区的专家,并在慕课网、华为开发者联盟社区担任认证讲师。

已出版《循序渐进Spark大数据应用开发》《分布式系统常用技术及案例分析》《Netty原理解析与开发实战》等几十本技术书籍。

本书读者

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

本书目录

向上滑动阅览

目    录

第 1 章  初识HarmonyOS1

1.1  HarmonyOS产生的背景1

1.1.1  万物互联时代的新挑战1

1.1.2  什么是HarmonyOS2

1.1.3  HarmonyOS应用开发3

1.2  HarmonyOS核心技术理念3

1.2.1  一次开发,多端部署4

1.2.2  可分可合,自由流转6

1.2.3  统一生态,系统智能7

1.3  HarmonyOS新特性8

1.3.1  Stage模型9

1.3.2  UIAbility组件的生命周期9

1.3.3  ArkUI开发框架10

1.3.4  ArkTS编程语言11

1.3.5  ArkWeb11

1.3.6  “纯血鸿蒙”解读11

1.3.7  在AI方面的增强12

1.4  DevEco Studio的安装13

1.4.1  下载DevEco Studio13

1.4.2  安装DevEco Studio13

1.4.3  配置DevEco Studio13

1.4.4  创建虚拟机15

1.4.5  使用AI辅助编程作为你的开发导师19

1.5  实战:创建第一个HarmonyOS应用20

1.5.1  选择创建新项目20

1.5.2  选择模板21

1.5.3  配置项目信息22

1.5.4  自动生成工程代码22

1.5.5  预览项目23

1.5.6  运行项目24

1.6  应用工程结构介绍24

1.6.1  App包结构24

1.6.2  工程级目录25

1.6.3  entry模块级目录25

1.6.4  配置文件26

1.7  本章小结29

1.8  上机练习:开发第一个HarmonyOS应用——Hello World29

第 2 章  ArkTS语言基础30

2.1  基本知识30

2.1.1  声明30

2.1.2  类型31

2.1.3  运算符33

2.1.4  语句35

2.2  函数39

2.2.1  函数声明39

2.2.2  可选参数39

2.2.3  rest参数39

2.2.4  返回类型40

2.2.5  函数的作用域40

2.2.6  函数调用40

2.2.7  函数类型40

2.2.8  箭头函数40

2.2.9  闭包41

2.2.10  函数重载41

2.3  类41

2.3.1  字段42

2.3.2  方法44

2.3.3  构造函数47

2.3.4  可见性修饰符47

2.3.5  对象字面量48

2.3.6  Record类型的对象字面量49

2.4  接口49

2.4.1  接口属性50

2.4.2  接口继承50

2.5  泛型类型51

2.5.1  泛型类和泛型接口51

2.5.2  泛型约束51

2.5.3  泛型函数51

2.5.4  泛型默认值52

2.6  空安全52

2.6.1  非空断言运算符53

2.6.2  空值合并运算符53

2.6.3  可选链53

2.7  模块54

2.7.1  导出54

2.7.2  导入54

2.7.3  顶层语句56

2.8  本章小结56

2.9  上机练习:统计字符串中的字符数56

第 3 章  Ability开发57

3.1  Ability概述57

3.1.1  单Ability应用和多Ability应用57

3.1.2  HarmonyOS应用模型58

3.2  FA模型介绍58

3.2.1  FA模型中的Ability58

3.2.2  FA模型的生命周期59

3.2.3  FA模型的进程/线程模型59

3.3  Stage模型介绍60

3.3.1  Stage模型的设计思想60

3.3.2  Stage模型的基本概念61

3.4  UIAbility介绍62

3.4.1  UIAbility的生命周期62

3.4.2  UIAbility的启动模式62

3.4.3  UIAbility组件的基本用法63

3.5  Want概述66

3.5.1  Want的用途66

3.5.2  Want的类型66

3.5.3  Want的参数及属性67

3.6  实战:显式Want启动Ability68

3.6.1  新建Ability内页面68

3.6.2  新建Ability69

3.6.3  使用显式Want启动Ability70

3.6.4  运行70

3.7  本章小结71

3.8  上机练习:启动系统设置71

第 4 章  ArkUI基础开发72

4.1  ArkUI概述72

4.1.1  ArkUI基本概念72

4.1.2  ArkUI主要特征73

4.1.3  JS、TS、ArkTS、ArkUI、ArkCompiler之间的联系73

4.2  声明式开发范式75

4.2.1  声明式开发范式与类Web开发范式75

4.2.2  声明式开发范式的基础能力75

4.2.3  声明式开发范式的整体架构75

4.2.4  声明式开发范式的基本组成76

4.3  常用组件77

4.4  基础组件详解77

4.4.1  Blank78

4.4.2  Button78

4.4.3  Checkbox79

4.4.4  CheckboxGroup80

4.4.5  DataPanel81

4.4.6  DatePicker81

4.4.7  Divider82

4.4.8  Gauge83

4.4.9  Image84

4.4.10  ImageAnimator86

4.4.11  LoadingProgress88

4.4.12  Marquee88

4.4.13  Navigation89

4.4.14  PatternLock89

4.4.15  Progress90

4.4.16  QRCode91

4.4.17  Radio91

4.4.18  Rating91

4.4.19  RichText92

4.4.20  ScrollBar92

4.4.21  Search93

4.4.22  Select94

4.4.23  Slider94

4.4.24  Span95

4.4.25  Stepper与StepperItem96

4.4.26  Text97

4.4.27  TextArea99

4.4.28  TextClock100

4.4.29  TextInput100

4.4.30  TextPicker101

4.4.31  TextTimer102

4.4.32  TimePicker103

4.4.33  Toggle103

4.4.34  Web104

4.4.35  SymbolGlyph104

4.5  本章小结106

4.6  上机练习:实现高仿WeLink打卡应用106

第 5 章  ArkUI高级开发108

5.1  渲染控制108

5.1.1  if/else条件渲染108

5.1.2  ForEach循环渲染109

5.2  容器组件详解111

5.2.1  Column和Row111

5.2.2  ColumnSplit和RowSplit112

5.2.3  Flex113

5.2.4  Grid和GridItem114

5.2.5  GridRow和GridCol115

5.2.6  List、ListItem和ListItemGroup116

5.2.7  AlphabetIndexer117

5.2.8  Badge119

5.2.9  Counter120

5.2.10  Navigator121

5.2.11  Refresh123

5.2.12  RelativeContainer124

5.2.13  Scroll125

5.2.14  SideBarContainer126

5.2.15  Stack127

5.2.16  Swiper127

5.2.17  Tabs和TabContent128

5.3  媒体组件详解129

5.4  绘制组件详解132

5.4.1  Circle和Ellipse132

5.4.2  Line133

5.4.3  Polyline134

5.4.4  Polygon135

5.4.5  Path136

5.4.6  Rect138

5.4.7  Shape139

5.5  画布组件详解141

5.6  常用布局143

5.6.1  自适应布局143

5.6.2  响应式布局144

5.7  实战:使用ArkUI实现“登录”界面144

5.7.1  使用Column容器实现整体布局145

5.7.2  使用Image组件实现标志展示145

5.7.3  使用TextInput组件实现账号和密码的输入145

5.7.4  使用Button组件实现“登录”按钮146

5.7.5  使用Text组件实现“注册”按钮146

5.7.6  完整代码146

5.8  实战:使用ArkUI实现“计算器”应用147

5.8.1  新增Calculator.ets的文件147

5.8.2  实现递归运算148

5.8.3  实现将输入字符串转为字符串数组149

5.8.4  新增CalculatorButtonInfo.ets文件150

5.8.5  实现CalculatorButton组件150

5.8.6  构造整体页面151

5.8.7  运行152

5.9  本章小结152

5.10  上机练习:实现图片轮播播放器应用153

第 6 章  公共事件154

6.1  公共事件概述154

6.1.1  公共事件的分类154

6.1.2  公共事件的开发155

6.2  实战:订阅、发布、取消公共事件156

6.2.1  添加按钮156

6.2.2  添加Text组件显示接收的事件157

6.2.3  设置按钮的单击事件方法157

6.2.4  运行158

6.3  Emitter概述159

6.3.1  订阅159

6.3.2  取消订阅159

6.3.3  发送事件160

6.4  实战:使用Emitter进行线程间通信160

6.4.1  添加按钮160

6.4.2  添加Text组件显示接收的事件160

6.4.3  设置按钮的单击事件方法161

6.4.4  运行161

6.5  本章小结162

6.6  上机练习:实现购物车应用162

第 7 章  窗口管理164

7.1  窗口开发概述164

7.1.1  窗口的分类164

7.1.2  窗口模块的用途164

7.1.3  窗口沉浸式能力165

7.1.4  应用窗口模式165

7.2  窗口管理166

7.2.1  设置应用主窗口属性及目标页面166

7.2.2  设置应用子窗口属性及目标页面166

7.2.3  体验窗口沉浸式能力166

7.2.4  设置悬浮窗167

7.2.5  监听窗口不可交互与可交互事件167

7.3  实战:实现窗口沉浸式效果168

7.3.1  获取应用主窗口168

7.3.2  实现沉浸式效果168

7.3.3  运行169

7.4  智慧多窗170

7.4.1  悬浮窗170

7.4.2  分屏172

7.5  本章小结173

7.6  上机练习:创建子窗口173

第 8 章  网络编程174

8.1  HTTP数据请求概述174

8.1.1  HTTP请求方法174

8.1.2  HTTP状态码175

8.2  实战:通过HTTP请求数据175

8.2.1  准备一个HTTP服务接口175

8.2.2  使用Button组件来触发单击175

8.2.3  发起HTTP请求176

8.2.4  增加权限177

8.2.5  运行177

8.3  Web组件概述177

8.3.1  加载本地网页177

8.3.2  加载在线网页178

8.3.3  隐私模式加载在线网页178

8.3.4  网页缩放178

8.3.5  文本缩放179

8.3.6  Web组件事件179

8.3.7  Web和JavaScript交互179

8.3.8  处理页面导航183

8.4  实战:Web组件加载在线网页183

8.4.1  准备一个在线网页地址183

8.4.2  声明网络访问权限184

8.4.3  发起HTTP请求184

8.4.4  运行184

8.5  本章小结184

8.6  上机练习:实现一个使用Web组件展示HTML页面的应用185

第 9 章  安全管理186

9.1  访问控制概述186

9.1.1  权限包含的基本概念186

9.1.2  权限等级说明187

9.1.3  权限类型188

9.1.4  权限列表188

9.2  访问控制开发步骤195

9.2.1  权限申请流程195

9.2.2  权限申请195

9.2.3  授权196

9.3  实战:访问控制授权196

9.3.1  场景介绍196

9.3.2  声明访问的权限197

9.3.3  申请授予user_grant权限197

9.3.4  运行199

9.4  本章小结199

9.5  上机练习:使用麦克风199

第 10 章  数据管理200

10.1  分布式数据服务概述200

10.1.1  分布式数据服务的基本概念200

10.1.2  分布式数据服务运作机制202

10.1.3  分布式数据服务的约束与限制203

10.2  分布式数据服务开发步骤203

10.2.1  导入模块204

10.2.2  构造分布式数据库管理类实例204

10.2.3  获取/创建分布式数据库204

10.2.4  订阅分布式数据库的数据变化205

10.2.5  将数据写入分布式数据库205

10.2.6  查询分布式数据库数据206

10.3  关系数据库概述206

10.3.1  关系数据库的基本概念206

10.3.2  运作机制207

10.3.3  默认配置与限制207

10.4  实战:关系数据库开发207

10.4.1  操作RdbStore207

10.4.2  账目信息的表示210

10.4.3  操作账目信息表211

10.4.4  设计界面212

10.4.5  运行214

10.5  用户首选项概述214

10.5.1  用户首选项运作机制215

10.5.2  约束与限制215

10.6  实战:用户首选项开发216

10.6.1  操作Preferences216

10.6.2  账目信息的表示217

10.6.3  设计界面218

10.6.4  运行219

10.7  本章小结220

10.8  上机练习:使用分布式数据服务220

第 11 章  多媒体开发222

11.1  音频开发222

11.1.1  音频开发的基本概念222

11.1.2  音频播放开发指导222

11.1.3  如何选择音频播放开发方式224

11.1.4  AudioRenderer开发224

11.1.5  如何选择音频录制开发方式226

11.1.6  AudioCapturer开发226

11.2  图片开发228

11.2.1  图片开发的基本概念228

11.2.2  图片开发的主要流程228

11.2.3  图片解码229

11.2.4  图像变换231

11.2.5  位图操作234

11.2.6  图片编码236

11.2.7  图片工具236

11.3  视频开发237

11.3.1  视频开发指导237

11.3.2  视频开发步骤238

11.4  实战:实现音乐播放器243

11.4.1  获取本地音乐243

11.4.2  音乐播放控制244

11.4.3  创建播放器界面245

11.4.4  运行246

11.5  本章小结247

11.6  上机练习:实现录音机应用247

第 12 章  一次开发,多端部署248

12.1  “一多”简介248

12.1.1  背景248

12.1.2  定义及目标248

12.1.3  基础知识249

12.2  布局能力250

12.2.1  自适应布局251

12.2.2  响应式布局251

12.3  实战:图片查看器的一多UI原型设计252

12.3.1  UX设计252

12.3.2  计算设备的类型254

12.3.3  实现顶部区域UI原型255

12.3.4  实现中部图片显示区UI原型256

12.3.5  实现图片预览列表UI原型256

12.3.6  实现操作栏UI原型257

12.4  本章小结258

12.5  上机练习:实现图片查看器UI原型258

第 13 章  应用测试259

13.1  应用测试概述259

13.2  单元测试259

13.2.1  单元测试框架功能特性259

13.2.2  基础流程260

13.2.3  断言库261

13.2.4  自定义断言264

13.3  UI测试265

13.3.1  UI测试框架的功能特性265

13.3.2  Driver类使用说明266

13.3.3  On类使用说明267

13.3.4  Component类使用说明268

13.3.5  UiWindow类使用说明268

13.4  实战:UI测试269

13.4.1  编写UI测试脚本269

13.4.2  运行UI测试脚本270

13.5  本章小结272

13.6  上机练习:“统计字符串的字符数”的UI测试272

第 14 章  AI能力273

14.1  HarmonyOS AI能力概述273

14.1.1  核心AI框架:鸿蒙智能体框架273

14.1.2  关键AI能力套件:覆盖“感知?理解?推理?执行”全链路274

14.1.3  技术支撑:端侧AI与安全防护双保障274

14.2  智能体框架服务275

14.2.1  场景介绍275

14.2.2  开发步骤276

14.3  基础语音服务278

14.3.1  场景介绍278

14.3.2  文本转语音开发步骤278

14.3.3  语音识别开发步骤282

14.4  基础视觉服务284

14.4.1  场景介绍285

14.4.2  通用文字识别开发步骤285

14.5  自然语言理解服务287

14.5.1  分词开发步骤287

14.5.2  实体抽取开发步骤290

14.6  场景化语音服务291

14.6.1  朗读控件开发步骤292

14.6.2  AI字幕控件开发步骤297

14.7  场景化视觉服务300

14.7.1  人脸活体检测开发步骤300

14.7.2  卡证识别开发步骤303

14.7.3  文档扫描开发步骤304

14.7.4  AI识图开发步骤305

14.8  实战:实现视频AI字幕的开发306

14.8.1  接口说明306

14.8.2  实现步骤306

14.9  本章小结308

14.10  上机练习:实现一个语音识别应用308

第 15 章  综合实战(1):仿微信应用310

15.1  仿微信应用概述310

15.1.1  “微信”页面310

15.1.2  “联系人”页面310

15.1.3  “发现”页面311

15.1.4  “我”页面312

15.2  实战:“微信”页面312

15.2.1  创建“微信”页面ChatPage312

15.2.2  定义联系人Person313

15.2.3  定义联系人数据313

15.2.4  定义样式314

15.3  实战:“联系人”页面315

15.3.1  创建“联系人”页面ContactPage315

15.3.2  定义样式316

15.4  实战:“发现”页面317

15.4.1  创建“发现”页面DiscoveryPage317

15.4.2  定义样式318

15.5  实战:“我”页面319

15.6  实战:组装所有页面320

15.6.1  Tabs组件作为导航栏320

15.6.2  Swiper组件实现页面滑动321

15.7  本章小结322

15.8  上机练习:实现一个仿微信页面效果的应用322

第 16 章  综合实战(2):一多图片查看器323

16.1  UX设计323

16.2  架构设计324

16.2.1  模块的依赖关系325

16.2.2  修改Module类型及其设备类型326

16.3  pictureView模块实现327

16.3.1  实现顶部区域327

16.3.2  实现中部图片显示区328

16.3.3  实现图片预览列表329

16.3.4  实现底部区域操作栏330

16.3.5  尺寸适配332

16.3.6  常量和接口332

16.4  base模块实现334

16.4.1  基础常量类334

16.4.2  设备类型常量类335

16.4.3  设备尺寸类型335

16.5  default模块实现336

16.5.1  图片查看器主页336

16.5.2  计算设备的类型336

16.6  本章小结337

16.7  上机练习:图片查看器337

第 17 章  综合实战(3):购物应用338

17.1  购物应用概述338

17.1.1  购物应用功能338

17.1.2  购物应用效果展示338

17.2  实战:实现商品列表页签339

17.2.1  应用首页340

17.2.2  创建模型340

17.2.3  创建组件346

17.3  实战:实现购物车页签349

17.3.1  创建一个页面349

17.3.2  创建组件349

17.4  实战:实现“我的”页签351

17.4.1  创建一个页面352

17.4.2  创建组件352

17.5  实战:商品详情页面355

17.5.1  创建一个页面355

17.5.2  创建组件356

17.5.3  设置路由360

17.6  本章小结361

17.7  上机练习:实现一个购物应用361

第 18 章  综合实战(4):AI扫描应用362

18.1  AI扫描应用概述362

18.1.1  AI扫描应用功能362

18.1.2  AI扫描应用效果展示362

18.2  实战:实现应用主页面363

18.2.1  应用首页363

18.2.2  设置路由365

18.3  实战:实现身份证识别功能366

18.3.1  创建一个页面366

18.3.2  添加相关依赖367

18.3.3  添加身份证识别控件367

18.3.4  运行调测368

18.4  实战:实现银行卡识别功能369

18.4.1  创建一个页面369

18.4.2  添加相关依赖370

18.4.3  添加银行卡识别控件370

18.4.4  运行调测372

18.5  实战:实现文档扫描功能372

18.5.1  创建一个页面372

18.5.2  添加相关依赖373

18.5.3  添加文档扫描控件373

18.5.4  运行调测375

18.6  本章小结376

18.7  上机练习:AI扫描应用376

附录  模拟器与真机的差异377

参考文献380

编辑推荐

·鸿蒙HarmonyOS以其分布式架构、一次开发多端部署的核心优势,正重构智能终端的生态格局。而《鸿蒙之光HarmonyOS 6应用开发入门》一书,无疑是你踏入这一前沿领域的最佳向导。

·本书作者老卫,作为鸿蒙社区的技术专家,已持续更新开源教程五年,其丰富的经验和深厚的技术功底在本书中得到了充分展现。书中不仅详细介绍了HarmonyOS 6的新特性和开发环境搭建,还通过循序渐进的方式,引领读者从基础理论到项目实战,深入探索“纯血鸿蒙”原生开发的精髓。

·全书分为入门、进阶和实战三个部分,内容覆盖ArkTS语言、Ability框架、ArkUI开发、公共事件处理、窗口管理、网络编程、安全管理、数据管理、多媒体开发等多个关键主题。配合诸多实战案例,如计算器开发、WeLink打卡系统、图片轮播播放器、AI扫描应用等,本书旨在提升读者的动手能力和解决实际问题的能力。

·无论你是零基础的编程小白,还是寻求技术转型的开发者,或是布局全场景产品的企业团队,这本书都将是你不可多得的学习资源。现在就行动起来,让我们一起开启HarmonyOS 6应用开发的旅程吧!

本文摘自《鸿蒙之光HarmonyOS 6应用开发入门》,具体内容请以书籍为准。

鸿蒙之光HarmonyOS 6应用开发入门——jdhttps://item.jd.com/15290312.html?spmTag=YTAyNDAuYjAwMjQ5My5jMDAwMDQwMjcuMSUyM3NrdV9jYXJk&pvid=5cdf4fe450104106bcaeee04655ba6ab

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐