鸿蒙操作系统是一款面向全场景的国产分布式操作系统,本书以鸿蒙操作系统为基础,解析了鸿蒙操作系统架构,介绍了鸿蒙操作系统开发与设计及鸿蒙应用程序开发基础。然后分析了鸿蒙技术开发的核心编程语言ArkTS、UI界面设计、应用程序框架服务、数据管理、IPC与RPC。最后使用鸿蒙技术设计了移动车载App。本书结合编著者多年的科研和教学实践,基于官方文档,融合工程项目,循序渐进地讲解鸿蒙应用程序开发的技术学习路线,既可作为高等院校相关专业的教材,也可作为鸿蒙应用程序开发人员的参考用书。本书还提供了丰富的教学资源,配备教学课件和重要知识点的教学视频,供读者观看学习。
教授,大连民族大学信息与通信工程学院院长,辽宁省本科教学名师,辽宁省百千万人才工程千人层次,信息与通信工程学院院长。研究方向为新一代电子信息技术,发表学术论文50余篇,被SCI或EI索引10余篇,出版专著1部,授权发明专利1项。承担省级以上科研项目5项,其中国家自然科学基金项目2项。
目 录
第1章 鸿蒙操作系统概述 1
1.1 鸿蒙操作系统的起源与发展 1
1.1.1 鸿蒙操作系统的研发背景与初衷 1
1.1.2 鸿蒙操作系统的技术特点与创新 2
1.2 鸿蒙操作系统的应用场景 3
1.2.1 在个人生活领域的应用场景 4
1.2.2 在产业与行业领域的应用场景 4
第2章 鸿蒙操作系统架构解析 6
2.1 鸿蒙操作系统的整体架构 6
2.1.1 内核层 6
2.1.2 系统服务层 7
2.1.3 框架层 8
2.1.4 应用层 9
2.2 鸿蒙操作系统的分布式能力 9
2.2.1 设备虚拟化 9
2.2.2 分布式调度 10
2.2.3 分布式数据管理 11
2.2.4 分布式硬件资源 11
2.2.5 分布式安全 12
2.2.6 分布式软总线 13
第3章 鸿蒙应用程序开发与设计 15
3.1 开发环境搭建 15
3.1.1 华为开发者认证 15
3.1.2 下载和安装Node.js 19
3.1.3 下载和安装DevEco Studio 20
3.2 创建鸿蒙应用程序 25
第4章 鸿蒙应用程序开发基础 34
4.1 程序中的文件包 34
4.1.1 使用场景和设计意义 34
4.1.2 应用包HAP的使用 36
4.1.3 静态共享包HAR的使用 41
4.1.4 动态共享包HSP的使用 43
4.1.5 模块化单位Module 47
4.1.6 基础能力单元Ability 49
4.2 DevEco Studio及工程文件 50
4.2.1 DevEco Studio的界面 51
4.2.2 ArkTS工程目录结构(Stage模型) 52
4.2.3 JS工程目录结构(FA模型) 56
第5章 ArkTS 59
5.1 ArkTS基础知识 59
5.1.1 ArkTS简介 59
5.1.2 ArkTS基础语法 60
5.1.3 函数 78
5.1.4 类 85
5.1.5 接口 92
5.1.6 泛型类型和函数 93
5.1.7 空安全 96
5.1.8 模块 97
5.1.9 关键字this 100
5.2 ArkTS编程规范 101
5.2.1 命名 101
5.2.2 格式 103
5.2.3 编程实践规范 107
第6章 UI界面设计 110
6.1 ArkUI概述 110
6.1.1 ArkUI简介 111
6.1.2 ArkUI中的开发规范 111
6.1.3 应用模型的支持情况 112
6.1.4 ArkUI的整体架构 113
6.1.5 UI开发流程 114
6.2 UI布局概述 114
6.2.1 布局元素与布局结构 115
6.2.2 常见布局结构 116
6.2.3 布局位置与元素约束 116
6.3 UI基本语法 117
6.4 声明式UI描述 118
6.4.1 组件的创建 118
6.4.2 配置属性 119
6.4.3 配置事件 119
6.4.4 配置子组件 120
6.5 自定义组件 121
6.5.1 自定义组件的基本结构 121
6.5.2 成员变量和函数 122
6.5.3 自定义组件中的参数 122
6.5.4 build函数 123
6.5.5 自定义组件的通用样式 125
6.5.6 页面和自定义组件的生命周期 125
6.5.7 监听页面的生命周期 128
6.5.8 自定义组件的自定义布局 129
6.6 装饰器 131
6.6.1 @State装饰器 131
6.6.2 @Link装饰器 132
6.6.3 @Prop装饰器 132
6.6.4 @Provide和@Consume装饰器 132
6.6.5 @Builder与@BuilderParam装饰器 132
6.6.6 @LocalBuilder装饰器 133
6.6.7 @WrapBuilder装饰器 134
6.6.8 @Styles装饰器 135
6.6.9 @Extend装饰器 135
6.6.10 stateStyles多态样式 135
6.6.11 @AnimatableExtend装饰器 136
6.6.12 @Require装饰器 137
6.7 状态管理 137
6.7.1 状态管理V1 138
6.7.2 状态管理V2 140
6.8 构建布局 142
6.8.1 线性布局 142
6.8.2 层叠布局 151
6.8.3 弹性布局 153
6.8.4 相对布局 156
6.8.5 栅格布局 159
6.8.6 媒体查询 163
6.8.7 列表 165
6.8.8 网格 180
6.8.9 选项卡 185
6.9 常用组件 192
6.9.1 文本组件 192
6.9.2 单选框和多选框 197
6.9.3 按钮 198
6.9.4 进度条 200
6.9.5 图片 201
6.9.6 视频 204
第7章 应用程序框架服务 206
7.1 Ability Kit 206
7.2 应用模型概况 208
7.3 Stage模型开发 210
7.3.1 Stage模型应用组件 211
7.3.2 UIAbility组件 213
7.3.3 UIAbility组件的启动 219
7.3.4 ExtensionAbility组件 225
7.3.5 AbilityStage组件容器 226
7.3.6 应用上下文 228
7.3.7 Want 229
第8章 数据管理 231
8.1 ArkData简介 231
8.2 标准化数据 233
8.2.1 标准化数据定义 233
8.2.2 标准化数据类型 233
8.2.3 标准化数据结构 235
8.3 应用数据持久化 236
8.3.1 用户首选项实现数据持久化 236
8.3.2 键值型数据库实现数据持久化 236
8.3.3 关系型数据库实现数据持久化 237
8.4 同应用跨设备数据同步(分布式) 237
8.4.1 键值型数据库跨设备数据同步 238
8.4.2 关系型数据库跨设备数据同步 240
第9章 IPC与RPC 242
9.1 IPC与RPC简介 242
9.2 IPC与RPC通信开发 243
9.3 远端状态订阅开发 243
9.4 IPC通信开发 243
第10章 项目示例——移动车载App设计 245
10.1 设计概述 245
10.2 整体UI规划 246
10.3 旅游攻略模块 246
10.4 地图导航模块 247
10.5 天气查询模块 248
10.6 车载音乐模块 249
10.7 总结 250