前言



进入21世纪以来,以智能手机和平板电脑为代表的移动终端设备在人们日常生活中扮演着越来越重要的角色,这些移动终端设备绝大部分搭载了苹果公司的iOS操作系统和谷歌公司的Android操作系统。这种局面不仅把我国广阔的市场让给了国外公司,而且对国家的安全和稳定也造成隐忧。特别是2019年以来,以美国为首的西方国家对华为等高科技公司制裁后,我国以5G为代表的智能手机和移动通信设备面临严峻的考验。华为推出HarmonyOS(鸿蒙操作系统)后,在全球引起强烈反响。HarmonyOS不仅是一款基于微内核的全场景分布式智慧操作系统,更被业界认为是中国高科技公司打破Android和iOS垄断移动操作系统市场的开始,对中国高科技产业的独立自主具有非常重大的战略意义。
HarmonyOS是一款面向未来、面向全场景(移动办公、社交通信、媒体娱乐、运动健康)的分布式智慧操作系统,可应用在手机、平板、计算机、智能汽车、智慧屏、智能穿戴等设备上,并且为不同设备的智能化、互联与协同提供统一的语言。目前,HarmonyOS应用程序开发包括Java UI开发框架和ArkUI方舟开发框架。ArkUI方舟开发框架是HarmonyOS新一代的应用程序开发框架,它包含基于JS(JavaScript)扩展的类Web开发范式(ArkUI JS)和基于TS(TypeScript)扩展的声明式开发范式(ArkUI eTS)。为了让零基础学习者快速入门,以及为了和具有前端开发经验者无缝切换到HarmonyOS应用程序开发,本书基于ArkUI JS介绍HarmonyOS应用程序开发技术,在内容编排上摒弃软件开发类书籍逐个知识点孤立介绍的传统,采用“案例诠释理论内涵、项目推动实践创新”的编写思路,不仅讲解项目的实现过程和步骤,还在此基础上讲解项目实现时所需的理论知识和技术,让读者在掌握理论知识后既会灵活运用,又能在新项目开发中不断拓展创新。
本书作者长期从事移动应用开发类课程建设与教学改革研究,有丰富的项目开发经验。本书采用作者主持研究的华为支持教育部产学合作协同育人新工科建设项目中取得的成果作为部分内容。本书提供教学大纲、教学进度、教学课件、程序源码等,还提供188个约3500分钟的微课视频同步讲解,读者先扫描封底刮刮卡中的二维码,同时扫描书中相应位置的二维码,即可边看边学、边学边做,真正实现“教、学、做”有机融合,提升从案例模仿到应用创新的递进式项目化软件开发能力。
本书共10章,内容安排如下。
第1章HarmonyOS应用开发环境。概要介绍HarmonyOS的发展与现状、技术架构与特点,详细讲解Windows平台、macOS平台下HarmonyOS应用程序开发环境搭建的步骤。
第2章HarmonyOS项目结构。从零开始介绍DevEco Studio集成开发环境下HarmonyOS项目的创建流程、HarmonyOS应用程序在真机设备和模拟器环境下的运行及调试方法,详细阐述HarmonyOS工程项目的目录结构、应用程序软件包的组成及JS工程项目中的页面布局文件、样式文件、逻辑文件的功能及语法规则。
第3章界面设计。主要介绍JS工程项目中的页面布局主要涉及的尺寸单位、通用样式、动画样式及渐变样式的定义和使用方法,结合实际案例详细讲解基础布局模型flex的用法及应用场景。
第4章组件。详细介绍组件在HarmonyOS应用程序页面中的定义和属性设置方法、事件的定义和绑定方法,并结合多个技术范例和“小学生四则运算练习册”“猜数字游戏”“毕业生满意度调查表”等项目案例阐述button、input、image、tabs、tabbar、tabcontent、option、marquee、progress、picker、pickerview、rating、slider、dialog等组件及setInterval函数的使用方法和应用场景。
第5章数据存储与访问。分别介绍轻量级数据存储与访问机制、文件存储与访问机制和关系数据库存储与访问机制的工作原理和应用场景,并结合多个技术范例和“睡眠质量测试系统”“抽奖助手”“随手账本”等项目案例阐述switch、stepper、swiper、stack、textarea、toolbar、toolbaritem、list、listitem、listitemgroup、refresh、chart等组件的使用方法和应用场景,以及轻量级数据存储与访问接口实现keyvalue键值对存储访问数据、文件存储与访问接口实现文件操作、关系数据接口实现数据库操作的方法和应用场景。
第6章多媒体应用开发。简要介绍图像开发、相机开发、音频开发和视频开发的基本概念和原理,并结合多个技术范例和“图片编辑器”“仿今日头条展示页面”等项目案例阐述canvas、video、panel等组件的使用方法和应用场景,以及利用CanvasRendering2dContext和AudioPlayer类对象开发多媒体应用程序的流程和方法。
第7章网络应用开发。简要介绍http访问网络的基本原理和方法,并结合多个技术范例和“网站导航”“股票即时查询工具”等项目案例阐述web、toggle组件的使用方法和应用场景,以及ArkUI JS开发框架下数据请求接口访问网络数据的方法和应用场景。
第8章传感器与位置服务应用开发。简要介绍HarmonyOS平台支持的传感器类别、功能及位置服务相关的概念,并结合多个技术范例和“自动定位工具”项目案例讲解加速度、环境光、陀螺仪和气压等传感器接口的使用方法和应用场景,以及利用位置服务接口进行定位和地址编码解析的方法和应用场景。
第9章原子化服务与服务卡片。分别介绍原子化服务、服务中心、服务卡片的概念、使用方法及它们之间的关系,并结合“新闻推荐”“校园门户”技术范例详细讲解原子服务、服务卡片的开发流程和应用场景。
第10章分布式流转应用开发。简要介绍流转、多端协同、跨端迁移的概念、应用场景及它们之间的关系,详细讲解ArkUI JS开发框架提供的分布式能力接口实现分布式拉起和分布式流转的方法,并结合“分布式照片浏览器”项目案例讲解分布式流转应用程序的开发流程和应用场景。
本书内容有如下特点。
(1) 新技术、新理念: 依据华为官方开发文档,基于ArkUI JS开发框架和HarmonyOS 3.0应用程序开发技术,采用“案例诠释理论内涵、项目推动实践创新”的编写理念组织内容,内容编排上以案例为载体,全面系统地阐述HarmonyOS应用程序开发从入门到精通的理论知识和技术要点。
(2) 重理论、强实践: 根据作者近年来参与的实际工程项目和教学实践安排各章节的内容,以“易学、易用、易扩展”的技术范例和“有趣、经典、综合性”的项目案例为主线,一步一步地向读者展现技术范例和项目案例设计与实现时所涉及的HarmonyOS应用程序开发技术,既能巩固理论知识,又能强化实践能力。
(3) 多资料、易入门: 随书既提供了教学课件、教学大纲、课后习题及程序源代码等传统的教学资源,还配套了全书所有技术范例和项目案例的微课视频,手把手地向读者传授HarmonyOS应用程序开发从入门到精通的技术和技巧,方便读者更好地掌握HarmonyOS应用程序开发技术,提高实际开发水平。
本书在编写过程中得到清华大学出版社张玥的帮助和指导,周巧扣、李霞等在资料收集和原稿校对等方面做了一些工作,在此一并表示感谢。
由于作者理论水平和实践经验有限,书中疏漏和不足之处在所难免,恳请广大读者提出宝贵的意见和建议。

倪红军2022年7月