移动应用开发技术——基于OpenHarmony平台
定 价:119.8 元
丛书名:新一代信息技术系列
读者对象:本书适用于本科院校和高职高专院校计算机相关专业学生
本书介绍OpenHarmony操作系统移动应用开发的知识,既包含基础的移动应用结构剖析,也涉及目前流行的终端设备AI模型的使用。本书强调理论和实践相结合,提供丰富的代码示例,方便读者理解和运用移动应用开发的知识。 本书讲解了 OpenHarmony 的系统特性、应用开发流程和开发工具、应用组成和配置,以及应用模型、ArkTS语法、基于ArkTS框架的UI设计与开发、数据持久化、传感器应用和媒体管理、网络访问与多线程等传统移动开发内容。此外,还介绍了OpenHarmony应用独有的流转架构和原子化服务等。最后以一个实用性较强的健康生活应用为例,介绍如何从需求分析入手,进行概要设计和详细设计,并最终完成代码开发。本书贯彻软件工程思想,通过工程化理念来指导移动应用开发。本书除第13章,其他章都设计了课后习题,希望能通过练习和操作实践帮助读者巩固所学知识。 本书既可以作为本科院校和高职高专院校计算机相关专业移动应用开发课程的教材,也可以作为对OpenHarmony应用开发感兴趣的IT从业人员的自学用书。
(1)华为的鸿蒙操作系统发展非常迅速,在鸿蒙生态的构建上,华为投入大量的资源,也获得大量生态合作伙伴的支持。因此,大量学生和工程师都需要学习鸿蒙操作系统的相关知识。 (2)本书基于华为OpenHarmony最新的3.2版本,通过与华为鸿蒙一线研发人员和鸿蒙HCIA认证开发工程师的合作,内容上体现华为官方认证的鸿蒙应用开发最新和最稳定特性,具备前瞻性、稳定性和权威性。 (3)作者为武汉大学计算机学院软件工程系副教授,全国高校首门鸿蒙应用开发课程主讲人,华为HDE(Huawei Developer Expert)专家,连续两年获得华为高校鸿蒙人才生态春雨奖。在鸿蒙操作系统的使用和开发方面具有丰富经验。
赵小刚 武汉大学计算机学院软件工程系副主任,副教授。武大-华为OpenHarmony创新实践基地主要责任人。主持产学合作协同育人项目4项,主持和参与多项国家自然科学基金与湖北省自然科学基金项目,主持武汉大学校级教改项目2项。担任武汉大学计算机学院移动编程技术课程组长10余年。在全国高校中首次开设HarmonyOS称动编程技术课程,主编和参编HarmonyOS移动编程教材2部、数字教材1部,在华为人才在线发布"HarmonyOS移动应用开发慕课。获评苹果Swift移动编程授权认证讲师。指导学生获得中国高校计算机大赛-移动应用创新赛一等奖(2019年)和二等奖(2020年)。发表论交十余篇。 楚朋志 上海交通大学学生创新中心主任助理、创新实践部主任,高级实验师。获2022年高等教育(本科)国家级教学成果二等奖、上海市优秀教学成果奖特等奖,获首批-华为智能基座优秀救师、鸿蒙生态人才建设春雨奖,承担20余项省级及以上教改项目,获第二届全国高校混合式教学设计创新大赛特等奖。主讲人工智能交互技术基于华为AI平台的深度学习实践等课程,2023年和2024年分别有一门课程获上海市高校重点课程立项,2025年获华为ICT大赛实验教学案例高教组特等奖,指导学生参与榜单赛事(入选全国普通高校大学生克赛目录),并获最高奖项30余次。
第 1章 初识OpenHarmony 1 1.1 全球智能终端的发展 1 1.2 我国移动操作系统的机遇与挑战 2 1.3 OpenHarmony概述 2 1.4 OpenHarmony技术架构 2 1.4.1 内核层 3 1.4.2 系统服务层 4 1.4.3 框架层 4 1.4.4 应用层 4 1.5 OpenHarmony技术特性 4 1.5.1 硬件互助,资源共享 5 1.5.2 一次开发,多端部署 8 1.5.3 统一OS,弹性部署 9 1.6 OpenHarmony安全特性 9 本章小结 10 课后习题 10 第 2章 开发你的第 一行OpenHarmony代码 11 2.1 移动应用的组成 11 2.2 移动应用的开发和运行 12 2.3 移动应用的部署 13 2.4 DevEco Studio特性概述 14 2.4.1 核心特色 15 2.4.2 开发流程 15 2.5 搭建开发环境 16 2.5.1 安装软件并配置开发环境 17 2.5.2 创建并运行HelloWorld工程 19 2.6 开发低代码模式应用 21 2.6.1 低代码开发界面简介 21 2.6.2 使用低代码开发界面 22 2.6.3 案例花朵展示列表应用 23 2.7 编译构建Hvigor 27 2.7.1 Hvigor简介 28 2.7.2 OpenHarmony应用中的Hvigor 29 2.8 应用运行调试 32 本章小结 36 课后习题 36 第3章 OpenHarmony应用结构剖析 37 3.1 app的概念和HAP模块的组成 37 3.1.1 应用包结构 38 3.1.2 HAP模块结构 39 3.2 创建和使用共享包 39 3.2.1 创建HAR库模块 40 3.2.2 编译HAR库文件 41 3.2.3 为应用添加HAR依赖 41 3.2.4 创建和使用HSP库模块 42 3.3 资源限定与访问 43 3.3.1 资源分类 44 3.3.2 限定词目录命名规则 45 3.3.3 限定词目录 46 3.3.4 资源组目录 46 3.3.5 资源文件的建立及访问 47 3.4 配置文件 49 3.4.1 配置文件的内部结构 49 3.4.2 app标签的内部结构 50 3.4.3 module标签的内部结构 51 3.4.4 abilities标签的内部结构 54 3.4.5 module内其他标签的内部结构 57 本章小结 61 课后习题 61 第4章 OpenHarmony应用模型 62 4.1 应用模型概述 62 4.1.1 应用模型的组成 62 4.1.2 从FA模型到Stage模型 63 4.1.3 Stage模型和FA模型的对比 63 4.2 Stage模型 64 4.2.1 Stage模型应用组件简介 64 4.2.2 Stage模型核心组件关系 65 4.2.3 Stage应用/组件配置 67 4.3 UIAbility组件 69 4.3.1 UIAbility配置 69 4.3.2 UIAbility生命周期及回调 70 4.3.3 启动模式 73 4.3.4 基本用法 76 4.3.5 与UI的交互 77 4.4 Stage模型页面导航 80 4.4.1 Context 80 4.4.2 Want 81 4.4.3 显式Want 82 4.4.4 隐式Want 82 4.4.5 常见的action与entities 83 4.4.6 UIAbility间数据传递 85 4.4.7 导航至UIAbility指定页面 88 4.4.8 任务管理 91 4.5 ExtensionAbility组件 93 4.6 ServiceExtensionAbility组件 95 4.6.1 ServiceExtensionAbility生命周期 95 4.6.2 实现后台服务 96 4.6.3 启动后台服务 98 4.6.4 连接后台服务 99 4.6.5 客户端与服务端通信 100 4.6.6 获取后台天气数据示例 101 4.7 Stage模型中的进程模型 105 本章小结 106 课后习题 107 第5章 ArkTS语法 108 5.1 ArkTS基本语法 108 5.1.1 基本语法简介 109 5.1.2 变量、常量和基本类型 109 5.1.3 控制流 111 5.1.4 函数 112 5.1.5 类 114 5.1.6 接口 119 5.1.7 泛型类和函数 120 5.1.8 空安全 121 5.1.9 模块 122 5.2 ArkUI支持 123 5.2.1 ArkUI支持描述 123 5.2.2 声明式UI描述 124 5.2.3 创建自定义组件 126 5.2.4 页面和自定义组件生命周期 130 5.2.5 自定义构建函数 135 5.2.6 组件样式复用及扩展 137 5.3 状态管理 140 5.3.1 状态管理简介 140 5.3.2 管理组件的状态 143 5.3.3 管理应用的状态 149 5.4 渲染控制 155 5.4.1 if/else条件渲染 155 5.4.2 ForEach循环渲染 157 5.5 ArkTS语言基础类库 158 5.5.1 并发 159 5.5.2 容器类库 162 5.5.3 XML生成与解析 164 5.6 ArkTS开发实战 165 5.6.1 界面的设计与实现 166 5.6.2 配置属性与布局 167 5.6.3 改变组件状态 167 5.6.4 循环渲染列表数据 169 本章小结 171 课后习题 171 第6章 ArkUI设计与开发 172 6.1 ArkUI框架基础 172 6.2 组件通用特性 173 6.2.1 组件通用样式 173 6.2.2 组件通用事件点击、触摸和拖曳 175 6.3 构建复杂的交互界面 177 6.3.1 布局构建 177 6.3.2 基础组件和容器组件的关系 178 6.3.3 添加标题区和文本区 178 6.3.4 添加图片区 181 6.3.5 添加评论区 182 6.4 容器组件 183 6.4.1 List组件 184 6.4.2 Tabs组件 185 6.4.3 Grid组件 190 6.4.4 Swiper组件 192 6.4.5 Stack组件 194 6.5 ArkUI其他必要功能 196 6.5.1 页面路由 196 6.5.2 组件导航 200 6.5.3 消息弹窗 203 6.5.4 日志输出 205 6.5.5 自定义图形绘制 206 6.5.6 动画 207 6.6 购物车应用开发 211 6.6.1 一次开发,多端部署 211 6.6.2 首页标签页 217 6.6.3 详情页设计 224 本章小结 232 课后习题 232 第7章 OpenHarmony数据持久化 233 7.1 数据持久化定义 233 7.2 DataShareExtensionAbility的使用 233 7.2.1 统一资源标识符 234 7.2.2 创建DataShareAbility 234 7.2.3 注册DataShareAbility 237 7.2.4 访问DataShareAbility 237 7.3 文件存储 238 7.3.1 应用文件 239 7.3.2 用户文件 244 7.4 关系数据库操作 246 7.4.1 关键术语 246 7.4.2 工作原理 247 7.4.3 数据库操作流程 247 7.4.4 创建数据库 248 7.4.5 数据插入 248 7.4.6 数据查询 250 7.5 用户偏好文件操作 251 7.5.1 工作原理 251 7.5.2 数据读写 252 7.6 分布式数据服务 256 7.6.1 关键术语 256 7.6.2 核心组件 257 7.6.3 工作原理 258 7.6.4 分布式数据访问 259 7.7 分布式文件系统 264 7.7.1 工作原理 264 7.7.2 分布式文件读写 266 本章小结 269 课后习题 269 第8章 OpenHarmony流转架构剖析 270 8.1 流转的核心概念 270 8.2 流转架构 272 8.2.1 核心组件 272 8.2.2 关键流程 273 8.3 跨端迁移功能开发 274 8.3.1 跨端迁移核心方法 274 8.3.2 跨端迁移实战开发 275 8.4 多端协同功能开发 276 8.4.1 多端协同场景分类 276 8.4.2 分布式音乐播放器界面设计 279 8.4.3 多端协同权限申请 281 8.4.4 设备连接 282 8.4.5 数据恢复 284 本章小结 287 课后习题 287 第9章 OpenHarmony传感器应用和媒体管理 288 9.1 主流传感器分类 288 9.2 传感器工作原理 289 9.3 加速度传感器调用 291 9.4 相机调用 293 9.4.1 相机开发模型 293 9.4.2 权限申请 294 9.4.3 设备输入 294 9.4.4 会话获取 295 9.4.5 预览 297 9.4.6 照相 298 9.5 媒体访问和播放 300 9.5.1 音视频处理概述 301 9.5.2 核心接口AVPlayer和AVRecorder 302 9.5.3 音频播放 304 9.5.4 视频播放 308 9.6 位置传感器调用 312 9.6.1 基本概念 312 9.6.2 运作机制 313 9.6.3 位置获取 313 本章小结 315 课后习题 315 第 10章 OpenHarmony原子化服务 316 10.1 原子化服务的定义与特性 316 10.2 原子化服务开发基础 317 10.2.1 开发总体要求 317 10.2.2 服务卡片结构 318 10.2.3 ArkTS运作机制 319 10.2.4 ArkTS卡片优点 320 10.3 原子化服务开发进阶 320 10.3.1 卡片项目的文件结构 320 10.3.2 卡片配置文件的特性 321 10.3.3 卡片提供方主要回调函数 323 10.3.4 卡片页面基本能力 324 10.3.5 开发卡片事件 326 10.3.6 卡片数据交互 334 10.4 原子化服务开发实战 340 10.4.1 项目基本需求 340 10.4.2 建立项目及卡片 340 10.4.3 配置文件解析 341 10.4.4 卡片信息持久化 344 10.4.5 卡片内容刷新 348 10.4.6 卡片页面跳转 350 10.4.7 删除卡片 351 本章小结 352 课后习题 352 第 11章 OpenHarmony网络访问与多线程 353 11.1 HTTP接口调用 353 11.2 数据上传和下载 356 11.3 WebSocket连接 358 11.3.1 WebSocket的概念 358 11.3.2 WebSocket的实现 359 11.4 多线程 361 11.4.1 线程模型概述 362 11.4.2 用Emitter线程进行线程间通信 362 11.4.3 用Worker线程进行线程间通信 363 11.5 Web组件网络访问 365 11.5.1 使用Web组件加载页面 365 11.5.2 设置基本属性和事件 367 11.5.3 在应用中使用前端JS代码 370 本章小结 372 课后习题 372 第 12章 OpenHarmony高级技术 373 12.1 NAPI的使用 373 12.1.1 应用架构 373 12.1.2 编译架构 374 12.1.3 开发流程 374 12.1.4 应用示例 374 12.2 Native XComponent组件的使用 378 12.2.1 界面设计 378 12.2.2 ArkTS侧方法的调用 379 12.2.3 渲染功能实现 380 12.2.4 使用NAPI实现触摸事件回调函数 385 12.2.5 使用NAPI将C 方法传递给ArkTS 386 12.2.6 释放相关资源 388 12.2.7 注册与编译 389 12.3 AI开发 391 12.3.1 MindSpore Lite简介 391 12.3.2 MindSpore Lite JS API的使用 392 12.3.3 MindSpore Lite Native API的使用 393 12.4 性能分析工具 397 12.4.1 查看CPU占用情况 398 12.4.2 查看内存占用情况 399 12.5 应用测试 399 12.5.1 实现原理 400 12.5.2 编写测试脚本 400 12.5.3 执行测试脚本 402 本章小结 403 课后习题 403 第 13章 OpenHarmony开发实战进阶 404 13.1 需求分析 404 13.2 概要设计 405 13.2.1 健康生活应用部署结构 405 13.2.2 健康生活应用总体框架 405 13.2.3 登录与注册模块 406 13.2.4 任务创建与编辑模块 407 13.2.5 任务打卡模块 407 13.2.6 成就管理模块 408 13.3 详细设计 408 13.3.1 类图设计 408 13.3.2 数据库设计 410 13.4 代码开发 412 13.4.1 应用主页面 412 13.4.2 任务创建与编辑 418 13.4.3 任务列表与打卡 424 13.4.4 任务提醒 427 13.4.5 数据库访问 429