前言
在数字化浪潮汹涌澎湃的今天,作为科技生态的核心枢纽,操作系统的重要性不言而喻。鸿蒙操作系统的诞生,犹如一颗璀璨的新星,照亮了全场景智慧生活的新征程,它的功能是以往的任何操作系统都不曾企及的。它以创新的分布式架构、强大的安全性能和卓越的跨设备协同能力,为开发者和用户带来了前所未有的体验。
对于开发者而言,鸿蒙提供了一个广阔而充满机遇的平台。它打破了传统设备之间的壁垒,让应用开发不再局限于单一设备,而是能够在多种设备间无缝流转,实现真正意义上的万物互联。然而,新的技术也带来了新的挑战,如何快速掌握鸿蒙的开发技巧,成为众多开发者亟待解决的问题。
本书正是为了满足广大开发者的需求而精心编写的。它以深入浅出的方式,全面、系统地介绍了鸿蒙原生开发的各方面。从基础概念的讲解到实际项目的开发,从核心技术的剖析到常见问题的解决,每个环节都经过了精心打磨,力求让读者能够轻松上手,快速掌握鸿蒙开发的精髓。
在编写过程中,我们始终坚持理论与实践相结合的原则。书中不仅有详细的代码示例和解释,还有丰富的案例分析和项目实战,让读者在学习理论知识的同时,能够通过实际操作加深对知识的理解和掌握。同时,我们还注重知识的系统性和完整性,从开发环境的搭建到应用的发布,对每个步骤都进行了详细的介绍,让读者能够全面了解鸿蒙开发的全过程。
我们希望通过本书,能够帮助广大开发者快速入门鸿蒙开发,掌握相关技术和方法,开发出更多优秀的应用程序。同时,我们也希望本书能够成为鸿蒙开发领域的一本经典教材,为推动鸿蒙生态的发展作出贡献。
本书结构
如果你刚刚接触鸿蒙应用开发,按照本书的章节顺序学习定会有所收获。本书有大量的实例代码,你可以自行运行它们,以巩固对相关概念的理解。
本书共12章,每章的内容简单介绍如下。
第1章,鸿蒙系统简介,主要从整体上介绍什么是鸿蒙系统,包括鸿蒙的历史、发展、系统特点等。
第2章,搭建鸿蒙应用开发环境,主要介绍鸿蒙应用开发环境的安装及配置。
第3章,创建第一个鸿蒙应用,主要介绍怎么创建第一个鸿蒙应用,并运行调试。
第4章,方舟编程语言(ArkTS)入门,主要介绍一种新的编程语言。
第5章,UI布局开发,主要介绍一些简单的UI开发。
第6章,常用UI组件开发,主要介绍常用UI组件的开发,包括文本框、按钮、输入框、日期选择框等,掌握这些组件,可以构造出大多数交互界面。
第7章,程序框架服务Ability Kit,主要介绍Ability的功能。
第8章,日志,主要介绍鸿蒙的日志系统,包括日志的等级定义、格式定义、日志的输出、查看等。
第9章,方舟数据管理(ArkData),主要介绍常用的数据存储管理方法。
第10章,绘图程序开发,主要介绍一个绘图程序的开发过程。
第11章,简易音乐播放器开发,主要介绍一个音乐播放器的开发。
第12章,鸿蒙系统的设计规范,主要介绍鸿蒙系统的设计规范,包括设计规范概述、导航的规范、人机交互及分布式设计原则等。
目标读者
本书既是教程,又是参考指南,同时也适合作为高校相关专业教材,主要面向以下读者群体。
从事手机、平板电脑、智能电视、物联网设备开发的程序员。
初学鸿蒙应用开发的自学者。
鸿蒙系统爱好者。
高校的老师和学生。
相关培训机构的老师和学员。
编写说明
本书编写团队由业界一线技术专家、高校教师组成。其中郑强来自技术公司开发部门,负责整本书籍的框架搭建及第7、9、10、11章的撰写,编写字数约20万字;余兰亭来自重庆商务职业学院,负责书籍文字整理及第5、6、8、12章的撰写,编写字数约10万字;黄尚文来自证券公司产品研发部门,负责第1、2、3、4章的撰写,编写字数约5万字。
本书部分案例代码请扫描下方二维码获取。
致谢
首先感谢编者的家人,没有你们的帮助和理解,这本书不可能完成。感谢清华大学出版社的编辑,因为你们的帮助,这本书才得以问世。最后要感谢的就是你,我亲爱的读者,感谢你拿起这本书,你的认可是我最大的快乐。由于时间和水平有限,书中难免存在不足之处,恳请广大读者批评指正。
编者
2025年5月
目录
第1章?鸿蒙系统简介 001
1.1 智能手机操作系统 001
1.1.1 智能手机系统发展历史 001
1.1.2 智能手机的开放与封闭之争 002
1.2 鸿蒙系统发展历史 003
1.2.1 鸿蒙系统1.0介绍 004
1.2.2 鸿蒙系统2.0介绍 005
1.2.3 鸿蒙系统与物联网 005
1.3 鸿蒙系统的特点 006
1.3.1 内核特点简介 008
1.3.2 鸿蒙系统分布式技术特性 010
1.4 鸿蒙系统的分层架构 013
1.4.1 内核层 013
1.4.2 系统服务层 014
1.4.3 框架层 014
1.4.4 应用层 014
1.5 小结 014
第2章?搭载鸿蒙应用开发环境 016
2.1 开发环境简介 016
2.2 HUAWEI DevEco Studio开发环境安装 018
2.2.1 macOS系统中安装HUAWEI DevEco Studio 019
2.2.2 Windows系统中安装HUAWEI DevEco Studio 020
2.3 配置DevEco Studio 023
2.4 小结 027
第3章?创建第一个鸿蒙应用 028
3.1 第一个应用实现的目标 028
3.2 注册鸿蒙开发者账号并在模拟器上运行 032
3.3 使用真机运行程序 039
3.3.1 使用DevEco Studio生成证书请求文件 040
3.3.2 申请应用调试证书和设备注册 042
3.3.3 申请项目和应用 045
3.3.4 在开发环境中配置相关信息 049
3.3.5 运行程序 050
3.4 小结 050
第4章?方舟编程语言(ArkTS)入门 051
4.1 初识ArkTS语言 051
4.2 ArkTS设计理念 052
4.3 ArkTS语法基础 052
4.4 运算符 060
4.5 基本语句 062
4.5.1 if 条件语句 062
4.5.2 switch 条件语句 063
4.5.3 三元运算符 064
4.5.4 for语句 064
4.5.5 for…of语句 065
4.5.6 while语句 066
4.5.7 do…while语句 066
4.5.8 break语句 067
4.5.9 continue语句 068
4.5.10 throw和try语句 068
4.6 函数 069
4.6.1 函数 069
4.6.2 函数调用 070
4.6.3 Rest 语法 071
4.6.4 返回值 072
4.6.5 函数类型的声明 073
4.6.6 Lambda函数的语法 074
4.7 小结 076
第5章?UI布局开发 077
5.1 创建一个界面项目 077
5.2 目录结构 081
5.3 第一个界面文件 index.ets 084
5.4 什么是布局 090
5.4.1 布局的分类 090
5.4.2 布局的元素组成 091
5.4.3 布局的通用参数 092
5.5 布局的程序框架 092
5.5.1 项目效果 093
5.5.2 首页布局 093
5.5.3 页面跳转 096
5.5.4 页面配置 097
5.6 线性布局 098
5.7 相对布局 101
5.8 层叠布局 104
5.9 栅格布局 106
5.10 小结 108
第6章?常用UI组件开发 110
6.1 Text组件 110
6.2 Button组件 113
6.3 样式如何美化 116
6.4 通过主题进行样式美化 118
6.5 Text Input组件 120
6.5.1 基本文本输入框 121
6.5.2 密码输入框 121
6.5.3 数字输入框 122
6.5.4 自定义样式输入框 122
6.5.5 带前缀图标的搜索框 122
6.5.6 最大输入长度 123
6.5.7 总结 124
6.6 DatePicker组件与TimePicker组件 124
6.6.1 日期选择器 124
6.6.2 时间选择器 125
6.6.3 总结 126
6.7 Toggle组件 126
6.7.1 Toggle组件的基本用法 127
6.7.2 自定义颜色开关 127
6.7.3 总结 127
6.8 Checkbox组件 127
6.8.1 Checkbox组件的基本用法 128
6.8.2 自定义样式复选框 129
6.8.3 总结 129
6.9 Progress组件 129
6.9.1 线性进度条 130
6.9.2 环形进度条 131
6.9.3 自定义样式进度条 131
6.9.4 总结 132
6.10 Select组件 132
6.10.1 基本用法 132
6.10.2 带图标的下拉列表 134
6.10.3 总结 134
6.11 小结 134
第7章?程序框架服务Ability Kit 136
7.1 Ability kit基本概念 136
7.1.1 核心能力范围 136
7.1.2 主要使用场景 137
7.2 Stage模型简介 138
7.3 应用/组件级配置 140
7.3.1 App.json5配置 140
7.3.2 Stage模型应用开发组件 141
7.4 UIAbility组件生命周期 142
7.4.1 简介 142
7.4.2 代码解析EntryAbility类 143
7.5 UIAbility组件启动模式 146
7.6 启动应用内的UIAbility 147
7.7 StartAbilityDemo中接收启动参数 147
7.8 新打开的窗口如何关闭 150
7.9 启动新的界面并在关闭后,返回数据给第一个界面 151
7.10 UIAbility组件基本用法 152
7.11 小结 153
第8章?日志 154
8.1 鸿蒙系统中的日志 154
8.2 日志标签和日志等级 154
8.3 日志的格式化 156
8.4 日志的查看 157
8.5 日志编程实例 160
8.6 小结 163
第9章?方舟数据管理(ArkData) 164
9.1 ArkData简介 164
9.1.1 什么是ArkData 164
9.1.2 核心能力矩阵 165
9.1.3 架构设计图解 165
9.2 Preferences轻量存储数据 167
9.3 Preferences实例 170
9.4 关系数据库SQLite存储 175
9.5 关系数据库SQLite存储实例 177
9.6 小结 186
第10章?绘图程序开发 187
10.1 CanvasRenderingContext2D画布介绍 188
10.2 界面代码详解 190
10.3 画布组件 (DrawingCanvas.ets) 193
10.3.1 组件结构与属性 193
10.3.2 生命周期方法初始化画布 194
10.3.3 构建画布的触摸函数 194
10.4 绘图方法 197
10.5 基本数据结构 202
10.6 小结 205
第11章?简易音乐播放器开发 206
11.1 案例概述 206
11.2 media模块介绍 207
11.3 audio 模块 209
11.4 案例解析 211
11.4.1 导入必要的模块 211
11.4.2 定义音频源接口 212
11.4.3 组件定义和状态管理 212
11.4.4 初始化播放器 213
11.4.5 设置 AVPlayer 回调函数 214
11.4.6 加载当前歌曲 218
11.4.7 更新播放进度 219
11.4.8 播放控制函数 220
11.4.9 设置音量 221
11.4.10 格式化时间 221
11.4.11 构建 UI 221
11.5 小结 224
第12章?鸿蒙系统的设计规范 225
12.1 设计规范概述 225
12.2 应用的导航设计原则 226
12.3 人机交互 228
12.4 分布式设计原则 228
12.5 小结 230