前言
OpenHarmony是华为公司贡献主要代码、多家单位共建,并由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目。它是一款全领域、新一代、开源开放,并具备面向全场景、分布式等特点的智能终端操作系统。OpenHarmony开源至今,已有超过300家合作伙伴加入OpenHarmony生态共建,7800多名共建者参与贡献,贡献代码1.1亿多行,在Gitee活跃度指数上排名第一,累计超过600款软硬件产品通过OpenHarmony兼容性测评。目前,OpenHarmony已成为发展最快的智能终端开源操作系统,更被业界认为是中国高科技公司打破Android和iOS垄断移动操作系统市场的开始,对中国高科技产业的独立自主具有非常重大的战略意义。
OpenHarmony作为构建智能终端操作系统的重要基础能力平台和安全底座,对打造自主可控的国产操作系统、构建新的智能终端产业生态意义重大。深圳、北京、福州、惠州、重庆等城市也率先出台相关产业政策支持OpenHarmony发展,从供给侧和需求侧推动生态建设。随着OpenHarmony版本迭代、支持设备类型的增加和能力的提升,越来越多的合作伙伴基于OpenHarmony打造出自己的产品,目前已经覆盖教育、金融、交通、政务、医疗、航空等多个行业,在设备创新上取得了显著成就。例如,华为在OpenHarmony的基础上,通过增加HiLink(鸿蒙智联)、HMS(华为移动服务)等定制商业服务,推出了HarmonyOS和HarmonyOS NEXT商业化操作系统。HarmonyOS基于OpenHarmony和AOSP(Android Open Source Project)打造,兼容Android系统;HarmonyOS NEXT在HarmonyOS的基础上剔除AOSP,不再兼容Android系统。
基于OpenHarmony的开发主要分为设备开发(南向开发)和应用开发(北向开发)两个方向: 设备开发主要侧重于硬件层面的开发,涉及硬件接口控制、设备驱动开发、鸿蒙系统内核开发等;应用开发主要侧重于应用层面的开发,如UI设计、App开发等,更多地关注用户体验、应用性能优化和业务逻辑的实现。对于应用开发来讲,OpenHarmony和HarmonyOS没有太大区别,开发的应用都可以在两个系统上运行,应用开发中使用的API都是由OpenHarmony提供。为此,本书以OpenHarmony应用开发为基础,采用“案例诠释理论内涵、项目推动实践创新”的编写思路,以一个个“易学、易用、易扩展”的技术范例和“有趣、经典、综合性”的项目案例为载体,由浅入深、循序渐进地阐述基于ArkTS语言、ArkUI开发框架和最新API开发OpenHarmony应用的知识体系,既有助于读者掌握理论知识和开发技术,又有助于读者在实践中灵活运用和拓展创新。
本书作者长期从事移动应用开发类课程建设与教学改革研究,有丰富的项目开发经验。本书采用作者主持研究的华为支持教育部产学合作协同育人新工科建设项目中取得的成果作为部分内容。本书提供教学大纲、教学课件、程序源码等,还提供微课视频同步讲解,读者先扫描封底刮刮卡中的二维码,再扫描书中相应位置的二维码,即可以边看边学、边学边做,真正实现“教、学、做”的有机融合,提升从案例模仿到应用创新的递进式项目化软件开发能力。
全书共9章,内容安排如下。
第1章为OpenHarmony应用开发环境。概要介绍OpenHarmony系统的发展历程、现状和技术架构,详细讲解DevEco Studio在Windows、macOS平台下的安装步骤及OpenHarmony应用开发环境的搭建方法。
第2章为OpenHarmony应用的工程结构。从零开始介绍OpenHarmony工程项目的创建流程和应用程序包结构;详细阐述OpenHarmony工程项目的目录结构、资源分类及引用方法,初步阐述ArkTS语言的基本结构。
第3章为ArkTS程序设计基础。主要介绍ArkTS语言中变量、常量、数据类型、运算符、控制流程的基本语法;详细阐述ArkTS语言中的函数、类、对象、接口、泛型与异常的基本概念和使用方法,并结合实际技术范例讲解它们的应用场景。
第4章为界面基础组件与布局。详细介绍组件在OpenHarmony应用页面中的定义和属性设置方法、事件的定义和绑定方法,介绍Android应用程序的设计模式、用户界面的布局管理器和组件的共有属性,并结合多个技术范例和“四则运算练习器”“拼图游戏”“毕业生满意度调查表”等项目案例阐述状态管理、布局及Button、Text、TextInput、Image、Tabs、TabContent、Menu、TextTimer、Progress、Grid、GridItem、Panel、TextPicker、TextPickerDialog、DatePicker、DatePickerDialog、TimePicker、TimePickerDialog、Slider、Rating、Radio、Checkbox和CheckboxGroup组件的使用方法及应用场景。
第5章为数据存储与访问。分别介绍数据管理和文件管理机制,包含用户首选项、键值型数据库、关系数据库等通用数据持久化接口及文件管理模块接口,并结合多个技术范例和“睡眠质量测试系统”“备忘录”“我爱背单词”等项目案例阐述Toggle、Stepper、StepperItem、CustomDialog、List、ListItem、ListItemGroup、Search、Badge等组件的使用方法和应用场景,以及ResourceManager接口实现应用资源的访问、用户首选项接口实现键值对存储访问数据、应用文件存储与访问接口实现文件操作、关系数据接口实现数据库操作的方法和应用场景。
第6章为多媒体应用开发。简要介绍音频接口、视频接口、相机接口和图片接口的基本概念和原理,并结合多个技术范例和“影音播放器”“图片编辑器”等项目案例阐述AVPlayer、XComponent、Video、Canvas等组件的使用方法和应用场景,以及利用CanvasRenderingContext2D、PhotoViewPicker和图片处理接口开发多媒体应用的流程和方法。
第7章为网络应用开发。简要介绍HTTP访问网络的基本原理和方法,并结合多个技术范例和“股票行情查询工具”等项目案例阐述Web、Swipper组件的使用方法和应用场景,以及ArkTS开发框架下数据请求接口访问网络数据、解析JSON格式数据和XML格式数据的方法和应用场景。
第8章为传感器与位置服务应用开发。简要介绍OpenHarmony平台支持的传感器类别、功能及位置服务相关的概念,并结合多个技术范例和“指南针”“高德地图在鸿蒙中的应用”项目案例讲解加速度、环境光强度、磁场等传感器接口的使用方法和应用场景,以及利用位置服务接口进行定位和地址编码解析的方法和应用场景。
第9章为元服务与端云一体化开发。分别介绍元服务、服务卡片的概念及它们之间的关系,并以“便携记分牌”项目案例的实现过程详细讲解元服务的开发流程和应用场景,以 “实验室安全测试系统”项目案例的实现过程详细讲解服务卡片、端云一体化开发流程和应用场景。
本书以OpenHarmony最新发行版为基础,结合实际的企业应用项目案例进行编著,具有如下鲜明特点。
(1) 全书依据官方技术文档,选取侧重实战的知识点和应用场景编写,并配套所有技术范例和项目案例的微课视频,既是一本让初学者“看得懂技术、学得会步骤、做得出项目”的零基础入门级教材,也是一本让具有一定软件开发经验的学习者无缝切换到鸿蒙应用开发的快速上手参考书。
(2) 全书由浅入深的知识点体系重构和系统全面的知识点应用场景解析,既可以让零基础的初学者快速入门并掌握OpenHarmony应用开发技术和开发技巧,也可以让具有一定编程基础的开发者找到合适的起点,进一步提高开发水平,提升创新能力。
(3) 全书提供基于OpenHarmony技术点的技术范例127个,将理论讲解落实到代码实现上,有助于激发读者的学习兴趣,提升读者的项目编程能力。另外还结合每个技术范例提供了14个综合性的企业级实战项目案例,这些案例从零开始实现,对提升读者的项目创新能力具有很高的应用价值。
本书在编写过程中得到了清华大学出版社的帮助和指导,周巧扣、李霞等在资料收集和原稿校对等方面做了一些工作,在此一并表示感谢。
由于作者理论水平和实践经验有限,书中疏漏之处在所难免,恳请广大读者提出宝贵的意见和建议。
倪红军2025年1月