第1章走进Harmony
1.1了解HarmonyOS
1.1.1HarmonyOS技术特性
1.1.2HarmonyOS系统架构
1.2搭建HarmonyOS开发环境
1.2.1安装环境要求
1.2.2下载安装工具
1.2.3搭建开发环境
1.3关于DevEco Studio
1.3.1DevEco Studio界面及配置
1.3.2DevEco Studio SDK管理
1.4创建个HarmonyOS项目
1.4.1创建个项目
1.4.2模拟器运行及预览
1.5HarmonyOS项目分析
1.5.1项目逻辑视图
1.5.2项目结构与文件
1.6应用配置文件
1.6.1配置文件介绍
1.6.2配置信息App
1.6.3配置信息deviceConfig
1.6.4配置信息module
1.7资源文件
1.7.1Resource目录介绍
1.7.2Resource文件编写
1.7.3Resource文件使用
1.8日志管理工具
第2章Java
2.1Java语言基础
2.1.1面向对象编程
2.1.2Java程序基本结构
2.2类与对象
2.2.1类
2.2.2对象
2.3继承、接口、抽象类与多态
2.3.1继承
2.3.2抽象类
2.3.3接口
2.3.4多态
第3章Java UI
3.1Java UI单体组件
3.1.1Text组件
3.1.2Button组件
3.1.3Image组件
3.2Java UI容器组件
3.2.1线性布局DirectionalLayout
3.2.2相对布局DependentLayout
3.2.3坐标布局PositionLayout
3.2.4滚动菜单ListContainer
3.2.5滑动布局管理器 PageSlider
3.2.6其他布局容器
3.3Java UI动画
3.3.1动画类介绍
3.3.2数值动画AnimatorValue
3.3.3属性动画 AnimatorProperty
3.3.4动画集合AnimatorGroup
第4章JavaScript
4.1关于JavaScript
4.1.1JavaScript简介
4.1.2揭开JavaScript面纱
4.1.3JavaScript与Java的区别
4.2JavaScript开发环境
4.2.1JavaScript IDE
4.2.2浏览器
4.2.3Node.js
4.3走近JavaScript
4.3.1JavaScript执行方式
4.3.2JavaScript核心语法
4.3.3ES6语法概述
4.3.4JavaScript、HML及CSS
4.4HarmonyOS中的JS与Java
4.4.1Java中的实现
4.4.2JS 中的实现
4.4.3HarmonyOS中JS的优缺点
第5章JS UI
5.1关于JS UI
5.1.1JS UI框架介绍
5.1.2JS UI主体介绍
5.2开发个JS FA应用
5.2.1页面布局说明
5.2.2构建布局
5.2.3添加交互
5.3常用组件
5.3.1基础组件
5.3.2List组件
5.3.3Tabs组件
5.3.4自定义组件
5.4添加用户交互
5.4.1手势事件
5.4.2按键事件
5.4.3页面路由
5.5动画
5.5.1transform静态动画
5.5.2animation连续动画
第6章轻量级智能穿戴开发
6.1构建用户界面
6.1.1布局整体说明
6.1.2用户界面实现
6.2基本功能与系统能力
6.2.1设备基本功能
6.2.2系统能力
6.2.3应用生命周期
6.3手表应用推送至真机
第7章Ability
7.1关于Ability
7.2Page Ability
7.2.1概述
7.2.2路由配置
7.2.3Page与AbilitySlice的生命周期
7.2.4Page间导航
7.3线程
7.3.1概述
7.3.2线程管理
7.3.3线程通信
7.4ServiceAbility
7.4.1创建并启动Service
7.4.2连接Service
7.4.3Service的生命周期
第8章数据管理
8.1本地应用数据管理
8.1.1SQLite数据库
8.1.2关系型数据库
8.1.3对象关系映射数据库
8.1.4轻量级偏好数据库
8.2分布式服务
8.2.1多设备协同权限
8.2.2分布式数据服务
8.2.3分布式文件服务
8.3DataAbility
8.3.1创建Data
8.3.2文件存取
8.3.3数据库操作
第9章多媒体
9.1图像
9.1.1图像场景概述
9.1.2图像解码
9.1.3位图操作
9.1.4图像编码
9.2音视频
9.2.1音视频场景概述
9.2.2音视频编解码
9.2.3视频播放
9.2.4声频资源的加载与播放
9.3相机
9.3.1相机场景概述
9.3.2相机预览
9.3.3相机拍照
9.3.4连拍与录像
第10章应用实战: 第三方组件的使用——弹幕
第11章应用实战: 视频流直播
11.1发送端
11.1.1发送端工程结构
11.1.2发送端核心实现——Sender
11.1.3发送端核心工具——VDEncoder
11.1.4发送端其他工具类
11.2接收端
11.2.1接收端工程结构
11.2.2接收端核心实现——Receiver
11.2.3接收端核心工具——VDDecoder
11.2.4接收端其他工具类
11.3运行与效果
11.3.1发送端运行
11.3.2接收端运行
HarmonyOS自2018年对外流出相关的设计概念以来,就引起了广泛关注,它被认为是国产新一代操作系统的希望,是一款“面向未来”、面向全场景的分布式操作系统。2019年8月,华为在开发者大会上正式发布HarmonyOS,它提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。2020年9月,华为在开发者大会上发布了HarmonyOS 2.0,推出应用开发者Beta版本,并在同年12月推出了手机开发者Beta版。自此,开发者可以在鸿蒙的开发环境上开发和调试多个不同终端的应用,整体开发环境和SDK支持也初步成熟。
作为早一批鸿蒙应用开发者,我们在2020年6月就投身于鸿蒙的相关工作并且参与了包括2020年9月10日发布会上早展示的鸿蒙Demo应用的相关开发工作。之后我们有意识地对鸿蒙的应用开发知识进行梳理,希望能在鸿蒙系统到来之际为广大感兴趣的开发者提供一套较为系统且全面的鸿蒙开发讲解图书。除了本书的内容之外,针对鸿蒙的应用生态,我们还将安卓平台上二十余款非常受欢迎的组件移植到了鸿蒙平台供广大开发者使用,相关的源码已经开源到Gitee上
。进一步地,我们也在多个社区平台上基于这些自己开源的源码进行讲解分析,让读者更好地去使用和学习。
在本书编写时,HarmonyOS的北向应用开发能力刚刚问世,系统还未完全成熟,处于快速更新迭代的状态,因此本书
内容的广度和深度有限,仅涉及HarmonyOS应用开发中的一些基础核心功能。且在编写过程中,由于HarmonyOS的多次更新迭代,本书的代码也经历了多次测试和更改,因此读者在学习过程中也难免会碰到大大小小的问题,还望读者见谅,
也欢迎随时联系我们反馈问题。
读者对象
本书非常适合初学者入门,不仅涵盖了鸿蒙大部分的能力特性,还在此基础上对鸿蒙应用开发所用到的Java及JavaScript语言进行了简要的讲解,帮助对这两类语言还不熟悉的开发者能在学习
鸿蒙开发之前对鸿蒙所使用的开发语言有更清晰的认知。在内容讲解上,针对代码
部分也采用循序渐进的方式进行讲解,保证读者能够根据提供的代码一步步
掌握书里的知识点,并且提供了直观的运行效果参考。
本书组织结构
本书针对HarmonyOS SDK 4(Java 2.1.0.5,JavaScript 2.1.0.5)版本,对鸿蒙操作系统的应用开发基础进行了梳理和介绍。同时,也构建了一个在分布式场景非常常用的视频流直播实例作为实战的内容演练,进行了详细分析和讲解。其各章的主要内容如下:
第1章对HarmonyOS进行了综合介绍,总体涵盖了鸿蒙操作系统的系统特性、系统架构及开发环境,指导构建鸿蒙上的Hello World项目,并由此对鸿蒙项目结构、文件及日志管理工具进行讲解。
第2章在介绍HarmonyOS的Java开发内容之前,从Java语言基础、Java的类和对象及继承等多个在Java开发中必备的知识点进行简要介绍,保障读者能更好地切入和理解后续的学习内容。
第3章对鸿蒙的Java UI的常用组件、容器及动画进行了覆盖性讲解,让开发者基本了解和学习到Java UI的开发模式。
第4章在介绍HarmonyOS的JavaScript开发内容之前,从JavaScript简介、开发环境、核心语法及在HarmonyOS中针对Java和JavaScript的比较对JavaScript开发中必备的知识点进行了简要介绍,保障读者能更好地切入和理解后续的学习内容。
第5章对鸿蒙的JavaScript UI的开发框架、布局、组件、交互及动画进行了覆盖性讲解,让开发者基本了解和学习到Java UI的开发模式。
第6章从用户界面的构建及HarmonyOS所提供的基本功能、系统能力上简要讲解了鸿蒙轻量级智能穿戴设备的开发。
第7章讲解HarmonyOS中非常重要的Ability概念,详细地从Page Ability、线程及Service Ability 3个点入手介绍HarmonyOS应用所具备能力。
第8章从本地应用数据管理、分布式服务及Data Ability 3个点切入,详细介绍了HarmonyOS的数据管理能力及实现方法。
第9章从图像、音视频、相机3个多媒体常用的能力上切入,对HarmonyOS的多媒体能力和实现方法进行了详细介绍。
第10章详细讲解了HarmonyOS的组件及其使用方法,并且以实际开源的组件项目为例进行实践介绍。
第11章以分布式应用中非常重要的直播场景为目标,综合性地指导和讲解如何构建应用让两部HarmonyOS手机实现视频流直播的能力。
版本信息
HarmonyOS本身也在不断地迭代演化之中,其SDK和IDE随着版本的更新,API及应用开发特性也在不断地更新丰富。本书选取撰写时发布的HarmonyOS SDK 4(Java 2.1.0.5,JavaScript 2.1.0.5)版本进行代码梳理和讲解,IDE版本为DevEco Studio 2.0 Beta3,但是依然可能会出现本书代码与实际代码不同的情况,在这种情况下读者可以跟踪代码并获取信息。
致谢
在本书的撰写过程中,有非常多的人为我们提供了帮助,在此对诸位表达真挚的感谢。首先,感谢华为各位同事,为我们提供
了一些技术上的支持和帮助。也感谢中国科学院软件研究所智能软件研究中心的罗天悦、杨牧天老师为本书提供的大力支持。特别感谢组内的小伙伴吴圣垚和马卞,大力参与本书撰写及配套资源的筹备,还有陈丛笑、戴研、
刘雨琦、朱伟、熊轶翔、蒋筱斌、吕泽、邵妍洁等同学,协助完成书中内容及代码的测试验证。后感谢清华大学出版社的赵佳霓编辑,在写作和出版过程中为我们提供的帮助。再次感谢大家!
编者
2021年3月
本书源代码下载
教学课件(PPT)