新書推薦:
《
祛魅:对世界祛魅是一个人变强的开始
》
售價:HK$
62.7
《
家族财富传承
》
售價:HK$
154.6
《
谁是窃书之人 日本文坛新锐作家深绿野分著 无限流×悬疑×幻想小说
》
售價:HK$
55.8
《
一个经济杀手的自白 第3版
》
售價:HK$
110.9
《
8秒按压告别疼痛
》
售價:HK$
87.4
《
津巴多时间心理学:挣脱束缚、改写命运的6种时间观
》
售價:HK$
77.3
《
大英博物馆东南亚简史
》
售價:HK$
177.0
《
纯粹·我只要少许
》
售價:HK$
80.6
|
編輯推薦: |
《鸿蒙HarmonyOS应用开发入门》以HarmonyOS 3.x为基石,详细介绍了HarmoneyOS的新特性,包括ArkUI、ArkTS、Stage模型等。
介绍了使用HarmoneyOS开发应用程序的完整功能,包括大量范例与项目,阅读本书,读者能够学以致用,掌握开发实际应用程序的技能。
作为一本HarmoneyOS入门开发书籍,本书基础与示例相结合,按照边讲边练的思路组织内容,基本涵盖了HarmoneyOS开发的方方面面,可以帮助读者轻松迈进鸿蒙系统开发的门槛。
|
內容簡介: |
HarmonyOS是一款面向未来、面向全场景的分布式操作系统,借助HarmonyOS全场景分布式系统和设备生态,定义全新的硬件、交互和服务体验。本书采用**的HarmonyOS 3版本作为基础,详细介绍如何基于HarmonyOS 3来进行应用开发,包括HarmonyOS架构、DevEco Studio、应用结构、Ability、UI开发、公共事件、窗口管理、网络编程、安全管理、数据管理等多个主题,还介绍如何从0开始开发计算器、视频播放器、购物应用、微信应用等。本书辅以大量的实战案例,图文并茂,让读者易于理解掌握。同时,案例的选型偏重于解决实际问题,具有很强的前瞻性、应用性和趣味性。加入鸿蒙生态,让我们一起构建万物互联的新时代! 《鸿蒙HarmonyOS应用开发入门》适合HarmonyOS应用开发初学者和进阶读者作为自学用书,也适合培训机构作为培训教材,还适合大、中专院校的相关专业作为教学参考书。
|
關於作者: |
柳伟卫,网名老卫、waylau,在IT公司担任项目经理、架构师、高级技术顾问等职位,拥有十几年开发经验,是CSDN、 开源中国、阿里云开发者、华为开发者等技术社区专家,慕课网、华为开发者联盟社区认证讲师,HarmonyOS技术达人,曾获2021、2022年度牛人之星、2022年度OpenHarmony开源贡献之星。著有《跟老卫学HarmonyOS开发》《Netty 实战(精髓)》等开源书,并出版了《鸿蒙HarmonyOS手机应用开发实战》《鸿蒙HarmonyOS应用开发从入门到精通》《分布式系统常用技术及案例分析》《Java核心编程》《轻量级Java EE企业应用开发实战》《Node.js Express MongoDB Vue.js全栈开发实战》《Netty原理解析与开发实战》等专著。
|
目錄:
|
第1章 HarmonyOS介绍1
1.1 HarmonyOS概述1
1.1.1 什么是HarmonyOS1
1.1.2 HarmonyOS应用开发2
1.2 HarmonyOS的特征2
1.2.1 硬件互助,资源共享2
1.2.2 一次开发,多端部署6
1.2.3 统一OS,弹性部署7
1.3 HarmonyOS 3的新特性7
1.3.1 Ability组件的生命周期8
1.3.2 ArkUI开发框架9
1.3.3 ArkTS编程语言9
1.3.4 ExtensionAbility机制9
1.4 DevEco Studio的安装9
1.4.1 下载DevEco Studio9
1.4.2 安装DevEco Studio10
1.4.3 配置DevEco Studio11
1.5 实战:创建第一个HarmonyOS应用14
1.5.1 选择创建新项目14
1.5.2 选择模板15
1.5.3 配置项目信息16
1.5.4 自动生成工程代码17
1.5.5 预览项目17
1.5.6 运行项目17
1.6 应用工程结构介绍19
1.6.1 工程级目录19
1.6.2 entry模块级目录20
1.6.3 配置文件21
1.7 总结23
1.8 习题24
第2章 Ability的开发25
2.1 Ability概述25
2.1.1 单Ability应用和多Ability应用25
2.1.2 HarmonyOS应用模型25
2.2 FA模型介绍26
2.2.1 FA模型中的Ability26
2.2.2 FA模型的生命周期27
2.2.3 FA模型的进程线程模型27
2.3 Stage模型介绍27
2.3.1 Stage模型的设计思想28
2.3.2 Stage模型的Ability生命周期28
2.3.3 Stage模型的Ability启动模式28
2.4 实战:Ability内页面的跳转和数据传递30
2.4.1 新建Ability内页面30
2.4.2 页面跳转及传参32
2.4.3 参数接收34
2.4.4 运行35
2.5 Want概述36
2.5.1 Want的用途36
2.5.2 Want的类型36
2.5.3 Want参数属性37
2.6 实战:显式Want启动Ability38
2.6.1 新建Ability内页面39
2.6.2 新建Ability39
2.6.3 使用显式Want启动Ability40
2.6.4 运行41
2.7 实战:隐式Want打开应用管理41
2.7.1 使用隐式Want启动Ability42
2.7.2 运行42
2.8 总结43
2.9 习题43
第3章 UI开发(上)45
3.1 ArkUI概述45
3.1.1 ArkUI的基本概念45
3.1.2 ArkUI的主要特征46
3.1.3 JS、TS、ArkTS、ArkUI和ArkCompiler之间的联系47
3.2 声明式开发范式48
3.2.1 声明式开发范式与类Web开发范式48
3.2.2 声明式开发范式的基础能力48
3.2.3 声明式开发范式的整体架构49
3.2.4 声明式开发范式的基本组成50
3.3 常用的组件50
3.4 基础组件详解51
3.4.1 Blank51
3.4.2 Button52
3.4.3 Checkbox54
3.4.4 CheckboxGroup54
3.4.5 DataPanel55
3.4.6 DatePicker56
3.4.7 Divider57
3.4.8 Gauge58
3.4.9 Image59
3.4.10 ImageAnimator61
3.4.11 LoadingProgress63
3.4.12 Marquee63
3.4.13 Navigation63
3.4.14 PatternLock64
3.4.15 Progress65
3.4.16 QRCode66
3.4.17 Radio66
3.4.18 Rating66
3.4.19 RichText67
3.4.20 ScrollBar67
3.4.21 Search69
3.4.22 Select69
3.4.23 Slider70
3.4.24 Span71
3.4.25 Stepper与StepperItem72
3.4.26 Text73
3.4.27 TextArea74
3.4.28 TextClock75
3.4.29 TextInput75
3.4.30 TextPicker76
3.4.31 TextTimer76
3.4.32 TimePicker77
3.4.33 Toggle77
3.4.34 Web78
3.5 总结79
3.6 习题79
第4章 UI开发(下)80
4.1 容器组件详解80
4.1.1 Column和Row80
4.1.2 ColumnSplit和RowSplit82
4.1.3 Flex82
4.1.4 Grid和GridItem83
4.1.5 GridRow和GridCol84
4.1.6 List、ListItem和ListItemGroup85
4.1.7 AlphabetIndexer86
4.1.8 Badge87
4.1.9 Counter88
4.1.10 Navigator89
4.1.11 Panel92
4.1.12 Refresh92
4.1.13 RelativeContainer92
4.1.14 Scroll93
4.1.15 SideBarContainer94
4.1.16 Stack95
4.1.17 Swiper95
4.1.18 Tabs和TabContent96
4.2 媒体组件详解97
4.3 绘制组件详解98
4.3.1 Circle和Ellipse98
4.3.2 Line99
4.3.3 Polyline100
4.3.4 Polygon101
4.3.5 Path102
4.3.6 Rect104
4.3.7 Shape106
4.4 画布组件详解108
4.5 常用布局109
4.5.1 自适应布局109
4.5.2 响应式布局111
4.6 实战:使用ArkUI实现“登录”页面111
4.6.1 使用Column容器实现整体布局112
4.6.2 使用Image组件实现标志展示112
4.6.3 使用TextInput组件实现账号和密码的输入112
4.6.4 使用Button组件实现“登录”按钮113
4.6.5 使用Text组件实现“注册”按钮113
4.6.6 完整代码113
4.7 实战:使用ArkUI实现“计算器”114
4.7.1 新增Calculator.ets的文件114
4.7.2 实现递归运算114
4.7.3 实现将输入的字符串转为字符串数组116
4.7.4 新增CalculatorButtonInfo.ets文件117
4.7.5 实现CalculatorButton组件117
4.7.6 构造整体页面118
4.7.7 运行120
4.8 总结120
4.9 习题120
第5章 公共事件122
5.1 公共事件概述122
5.1.1 公共事件的分类122
5.1.2 公共事件的开发123
5.2 实战:订阅、发布、取消公共事件124
5.2.1 添加按钮124
5.2.2 添加Text显示接收的事件125
5.2.3 设置按钮的单击事件方法125
5.2.4 运行126
5.3 总结127
5.4 习题127
第6章 窗口管理128
6.1 窗口开发概述128
6.1.1 应用窗口的分类128
6.1.2 窗口模块的用途128
6.1.3 窗口沉浸式能力129
6.2 窗口管理129
6.2.1 设置应用主窗口的属性及目标页面129
6.2.2 设置应用子窗口的属性及目标页面130
6.2.3 体验窗口沉浸式能力130
6.3 实战:实现窗口沉浸式效果130
6.3.1 修改onWindowStageCreate方法130
6.3.2 运行131
6.4 总结132
6.5 习题132
第7章 网络编程133
7.1 HTTP数据请求概述133
7.1.1 HTTP请求方法133
7.1.2 HTTP状态码134
7.2 实战:通过HTTP请求数据134
7.2.1 准备一个HTTP服务接口134
7.2.2 添加使用Button组件来触发单击134
7.2.3 发起HTTP请求135
7.2.4 运行136
7.3 Web组件概述136
7.3.1 加载本地网页136
7.3.2 加载在线网页137
7.3.3 网页缩放137
7.3.4 文本缩放138
7.3.5 Web组件事件138
7.3.6 Web和JavaScript交互138
7.3.7 处理页面导航140
7.4 实战:Web组件加载在线网页141
7.4.1 准备一个在线网页地址141
7.4.2 声明网络访问权限141
7.4.3 发起HTTP请求142
7.4.4 运行142
7.5 总结142
7.6 习题143
第8章 安全管理145
8.1 访问控制概述145
8.1.1 权限包含的基本概念145
8.1.2 权限等级说明146
8.1.3 权限类型146
8.1.4 权限列表147
8.2 访问控制开发步骤154
8.2.1 权限申请154
8.2.2 权限授权155
8.3 实战:访问控制授权155
8.3.1 场景介绍155
8.3.2 声明访问的权限155
8.3.3 申请授权user_grant权限156
8.3.4 运行157
8.4 总结157
8.5 习题158
第9章 数据管理159
9.1 分布式数据服务概述159
9.1.1 分布式数据服务的基本概念159
9.1.2 分布式数据服务的运作机制161
9.1.3 分布式数据服务的约束与限制162
9.2 分布式数据服务的开发步骤163
9.2.1 导入模块163
9.2.2 构造分布式数据库管理类实例163
9.2.3 获取/创建分布式数据库163
9.2.4 订阅分布式数据库的数据变化164
9.2.5 将数据写入分布式数据库164
9.2.6 查询分布式数据库数据165
9.3 关系数据库概述165
9.3.1 基本概念165
9.3.2 运作机制166
9.3.3 默认配置与限制166
9.4 实战:关系数据库的开发166
9.4.1 操作RdbStore166
9.4.2 账目信息的表示168
9.4.3 操作账目信息表169
9.4.4 设计界面171
9.4.5 运行173
9.5 首选项概述174
9.5.1 首选项的运作机制174
9.5.2 约束与限制175
9.6 实战:首选项开发175
9.6.1 操作Preferences175
9.6.2 账目信息的表示177
9.6.3 设计界面177
9.6.4 运行179
9.7 总结180
9.8 习题180
第10章 多媒体开发182
10.1 音频开发182
10.1.1 音频开发的基本概念182
10.1.2 音频播放开发指导182
10.1.3 如何选择音频播放开发方式184
10.1.4 AVPlayer API的开发步骤184
10.2 图片开发187
10.2.1 图片开发的基本概念187
10.2.2 图片开发的主要流程187
10.2.3 图片解码188
10.2.4 图像变换190
10.2.5 位图操作192
10.2.6 图片编码193
10.2.7 图片工具194
10.3 视频开发195
10.3.1 视频开发指导195
10.3.2 视频开发步骤196
10.4 实战:实现视频播放器199
10.4.1 获取本地视频199
10.4.2 视频播放控制203
10.4.3 创建播放器界面206
10.4.4 运行212
10.5 总结213
10.6 习题213
第11章 综合实战:购物应用214
11.1 购物应用概述214
11.1.1 购物应用的功能214
11.1.2 购物应用效果展示214
11.2 实战:实现商品列表页签215
11.2.1 创建一个页面216
11.2.2 创建模型216
11.2.3 创建组件222
11.2.4 加载主界面229
11.3 实战:实现购物车页签229
11.3.1 创建一个页面229
11.3.2 创建组件230
11.4 实战:实现我的页签232
11.4.1 创建一个页面232
11.4.2 创建组件233
11.5 实战:商品详情页面235
11.5.1 创建一个页面235
11.5.2 创建组件236
11.6 总结241
11.7 习题241
第12章 综合实战:仿微信应用242
12.1 仿微信应用概述242
12.1.1 “微信”页面242
12.1.2 “联系人”页面243
12.1.3 “发现”页面243
12.1.4 “我”页面244
12.2 实战:“微信”页面244
12.2.1 创建“微信”页面ChatPage244
12.2.2 定义联系人Person245
12.2.3 定义联系人数据246
12.2.4 定义样式246
12.3 实战:“联系人”页面248
12.3.1 创建“联系人”页面ContactPage248
12.3.2 定义样式249
12.4 实战:“发现”页面250
12.4.1 创建“发现”页面DiscoveryPage250
12.4.2 定义样式251
12.5 实战:“我”页面252
12.6 实战:组装所有页面253
12.6.1 Tabs组件作为导航栏253
12.6.2 Swiper组件实现页面滑动255
12.7 总结255
12.8 习题255
|
內容試閱:
|
写作背景
当HarmonyOS 3还未正式发布的时候,笔者便已经开始关注HarmonyOS 3的发展路线图了。笔者在各大论坛对HarmonyOS 3的新特性进行过非常多的文章介绍以及技术布道。本书所选用的HarmonyOS版本是市面上能看到的最新版本。
由于笔者之前已经出版过两本鸿蒙方面的图书棗《鸿蒙HarmonyOS手机应用开发实战》和《鸿蒙HarmonyOS应用开发从入门到精通》,并在持续维护一本开源书《跟老卫学HarmonyOS开发》,因此撰写本书并没有遇到太多的困难。当然,HarmonyOS 3由于革命性地引入了ArkUI、ArkTS、Stage模型等众多新特性,使得笔者不得不花费更多的时间来完成书中的示例。
本书的内容聚焦于HarmonyOS 3.1版本常用的核心功能。这些核心功能都是经过笔者验证过的、可用的。而其他的非核心功能,或功能存在bug或因其他原因没有收录进本书的功能,将会收集到《跟老卫学HarmonyOS开发》一书中,以开源的方式不断演进。
内容介绍
全书大致分为3部分:
入门(第1章):介绍HarmonyOS的背景、开发环境搭建,并创建一个简单的HarmonyOS应用。
进阶(第 2 ~ 10 章):介绍 HarmonyOS 的核心功能开发,内容包括 Ability、UI 开发、公共事件、 窗口管理、网络编程、安全管理、数据管理、多媒体开发等。
实战(第 11 ~ 12章):演示 HarmonyOS 综合实战案例“购物应用”“仿微信应用”。
本书主要面向的是对HarmonyOS应用开发感兴趣的学生、开发人员、架构师。
配套资源
本书提供的素材和源代码可扫描下面的二维码下载:
如果在学习和下载资源的过程中遇到问题,可以发送邮件至booksaga@126.com,邮件主题写“鸿蒙HarmonyOS应用开发入门”。
本书所采用的技术及相关版本
技术的版本是非常重要的,因为不同版本之间存在兼容性问题,而且不同版本的软件所对应的功能也是不同的。本书所列出的技术在版本上相对较新,都是经过笔者大量测试的。这样读者在自行编写代码时,可以参考本书所列出的版本,从而避免版本兼容性所产生的问题。建议读者将相关开发环境设置得跟本书一致,或者不低于本书所列的配置。
版本配置如下:
DevEco Studio 3.1 Release
HarmonyOS 3.1 Release
致谢
感谢清华大学出版社的各位工作人员为本书的出版所做的努力。
感谢我的父母、妻子和两个女儿。由于撰写本书,我牺牲了很多陪伴家人的时间。谢谢他们对我的理解和支持。
感谢关心和支持我的朋友、读者、网友。
由于笔者能力有限、时间仓促,书中难免存在疏漏之处,欢迎读者指正。
柳伟卫
2023年8月
|
|