前言
2020年,华为终端有限公司正式发布了鸿蒙HarmonyOS 1.0。2021年又先后正式发布了HarmonyOS 2.0、HarmonyOS 3.0和HarmonyOS 3.1 Beta。HarmonyOS系统是面向万物互联的全场景分布式操作系统,支持智能手机、平板电脑、智能穿戴设备、智慧屏和车机等多种终端设备。为不同设备的智能化、互联和协同提供了统一的语言,为用户带来简洁、流畅、安全、连续、安全可靠的全场景交互体验。HarmonyOS源代码在发布时同时开源,开源版本称为OpenHarmony,由开放原子开源基金会(OpenAtom Foundation)孵化及运营。
相对于Android、嵌入式Linux等系统,HarmonyOS不仅是一个手机或某一设备的单一系统,还是一个可将所有设备串联在一起的通用性系统。同时,HarmonyOS通过SDK、源代码、开发板/模组和开发工具等共同构成了完备的开发平台与工具链。这些特性使得HarmonyOS在物联网系统中具有强大的优势。
自HarmonyOS 1.0发布以后,我在所承担的物联网相关课程中,引入了在ARM架构CPU上运行的Harmony微内核系统LiteOS,以及由JavaScript开发运行于智能手表用户界面(UI)等相关知识内容,受到学生的欢迎。在教学过程中遇到的问题非常多,其中之一是难以找到适合的参考书籍。虽然在华为的开发者社区、HiHope开发者社区、51CTO等网站存在诸多的文档和代码,但是这些资料仍旧需要重新整理才能适应教学和学习的需要。
本书希望在HarmonyOS物联网开发技术方面为初学者提供必要的支持,因此在内容上涵盖了微内核、设备开发和应用开发的基础内容,通过这些内容可以学习LiteOS内核、轻量系统设备开发、应用开发的UI开发等基础技术。本书以实践为主,包括实验环境、LiteOS实验、轻量级系统设备开发实验和应用UI开发实验等内容,共约50个实验。内容涉及操作系统原理、接口和传感器等硬件和前端开发技术,WebSocket、MQTT等网络协议方面也有所介绍。附录中包含WiFi IoT核心板Hi3861的GPIO配置和GPIO扩展功能源代码,以及构建系统的简介。
在学习成本上,希望初学者能够零成本接触和入门HarmonyOS系统内核,低成本学习轻量级系统设备开发,零成本深入理解应用UI开发。除了设备开发的实验内容需要实物硬件设备的支持,其他实验均可通过本地模拟器、远程模拟器等方式进行,并且设备开发的大部分实验仅需要一块核心板即可完成。
读者也可以根据自己的实际情况进行取舍或减裁。如对LiteOS微内核有兴趣,可练习第2章的实验; 如对物联网设备开发感兴趣,可练习第3章的实验; 如对智能手机、智慧屏、车机等设备的UI应用开发有兴趣,可练习第4章的实验。完成第2章的实验需要掌握一定的操作系统原理、C程序设计、数据结构以及计算机体系结构的知识,完成第3章的实验需要掌握单片机原理、接口技术、C程序设计、编译构建、嵌入式系统和网络协议等知识,完成第4章的实验仅需要掌握一定的程序设计基础知识。
本书适合作为高等学校物联网、计算机专业的本科生教材,也可作为对HarmonyOS感兴趣的开发人员、广大科技工作者和研究人员的参考用书。
本书在编写过程中得到教育部产学合作协同育人项目、华中师范大学华为“智能基座”产教融合协同育人基地、华为技术有限公司和武汉科云信息技术有限公司的大力支持,在此一并表示衷心的感谢。
由于作者水平有限,书中不足之处在所难免,欢迎广大同行和读者批评指正。
葛非2022年10月