本书涵盖鸿蒙北向应用开发全部内容和南向硬件开发基础内容。
本书共5篇14章,开发准备篇(第1和2章)分别是鸿蒙操作系统简介和鸿蒙应用开发准备。第1章总体介绍鸿蒙操作系统的重要特性及技术架构,第2章介绍鸿蒙应用开发环境搭建,鸿蒙应用开发IDE、真机调试证书申请、真机模拟器使用。基础知识篇(第3~5章)系统的讲解鸿蒙两大应用开发框架的使用:Java UI和JavaScript UI框架,以及鸿蒙面向Ability开发技术。分布式开发篇(第6~8章)分别介绍鸿蒙分布式任务调度,分布式数据服务,分布式文件服务。应用实战篇(第9~12章)通过不同语言框架开发不同平台应用,后介绍如何申请鸿蒙发布证书,以及发布鸿蒙应用到华为官方应用市场的流程。硬件开发篇(第13和14章)介绍开源鸿蒙源码编译环境搭建和海思开发版的鸿蒙系统烧写及嵌入式开发入门。
本书适用于鸿蒙系统应用开发爱好者,Java、JavaScript开发者,以及嵌入式爱好者阅读。
华为的鸿蒙操作系统宣告问世,在全球引起反响。本书系统讲解鸿蒙操作系统及其应用。主要内容包括鸿蒙操作系统特征、鸿蒙应用程序开发框架、鸿蒙Ability、鸿蒙系统软总线、鸿蒙分布式文件系统、鸿蒙分布式UI、鸿蒙多屏流转应用、鸿蒙分布式安全及鸿蒙嵌入式开发。本书配套源码和教学课件,助力读者快速入门鸿蒙开发。
2019年8月9日,华为公司在华为开发者大会上正式发布了鸿蒙操作系统(HarmonyOS)1.0,同时宣布该操作系统源代码开源。2020年9月10日,鸿蒙操作系统2.0正式发布,与鸿蒙1.0版本相比,鸿蒙2.0在分布式软总线、分布式数据管理、分布式安全等分布式能力上进行了升级,同时发布了自适应的UX(用户体验)框架,让开发者能够非常简单且快速地开发鸿蒙应用程序。
鸿蒙操作系统,打破了硬件间各自独立的边界,融入了全场景智慧生态,鸿蒙操作系统不局限于手机,还包括可穿戴设备、智能汽车等物联网,创造一个超级智能终端互联的世界,将人、设备、场景有机地联系在一起。鸿蒙操作系统作为面向物联网时代的操作系统,将有望重塑物联网生态,将芯片、系统、人工智能等技术分享给全球,推动全社会数字化转型,继而进入智能社会新时代。对此,围绕系统构建庞大软硬生态,将带来万物智能的全场景生活生态。
鸿蒙的问世,恰逢中国整个软件业亟须补短,对国产软件的全面崛起能起到刺激和战略性带动作用。鸿蒙是时代的产物,它代表中国高科技必须开展的一次战略突围,是中国解决诸多“卡脖子”问题的一个带动点。
本书适合于有一定基础的JavaScript和Java开发者,可帮助读者快速掌握鸿蒙应用开发的技巧,本书案例涉及华为智能手表、智慧屏、手机及第三方开发板的开发,通过多个游戏案例帮助开发者快速掌握鸿蒙开发。
本书内容
本书共5篇14章。开发准备篇(第1和2章)、基础知识篇(第3~5章)、分布式开发篇(第6~8章)及应用实战篇(第9~12章)全面讲解北向应用开发的两大UI框架: Java UI 和JavaScript UI框架,通过3个案例介绍鸿蒙应用开发的基本步骤和技巧。硬件开发篇(第13和14章)讲解南向硬件开发的基础入门,以及开源鸿蒙系统的编译和开发板烧录鸿蒙系统的步骤。本书提供了大量代码示例,读者可以通过这些例子理解知识点,也可以直接在开发实战中稍加修改应用这些代码。
本书读者对象
学习本书内容需要具备一定的Java、HTML、CSS、JavaScript基础知识,希望本书能够对读者学习使用鸿蒙开发者框架构建美观、快速、跨终端的移动应用程序有所帮助,并恳请读者批评指正。
配套资源
扫描下面二维码可获取本书教学课件(PPT)及源代码。
徐礼文
2021年4月
教学课件(PPT)
本书源代码
徐礼文,华为官方首批HarmonyOS 课程导师、华为HDE、51CTO鸿蒙社区专栏作者。曾担任过资深软件开发工程师、架构师、技术总监等职务。曾任国内大型软件公司项目经理,从事软件研究和开发15年。主要从事Go、Python、人工智能、区块链、JavaScript、Node.js、Java及跨平台技术的研究和技术指导工作,对国内外相关领域的技术、理论和实践有很深的理解和研究。
篇开发准备篇
第1章鸿蒙操作系统简介
1.1鸿蒙全场景战略
1.2鸿蒙操作系统技术特性
1.2.1分布式设计
1.2.2一次开发,多端部署
1.2.3系统与硬件解耦,弹性部署
1.3鸿蒙操作系统技术架构
1.3.1内核层
1.3.2系统服务层
1.3.3框架层
1.3.4应用层
1.4本章小结
第2章鸿蒙应用开发准备
2.1鸿蒙应用开发环境搭建
2.1.1下载和安装Node.js
2.1.2下载和安装DevEco Studio
2.1.3运行Hello World
2.2华为开发者账号申请
2.3鸿蒙应用程序运行调试
2.3.1在远程模拟器中运行应用
2.3.2在Simulator中运行应用
2.4使用真机设备运行应用
2.4.1安装真机投屏软件
2.4.2真机设备测试流程
2.5本章小结
第二篇基础知识篇
第3章鸿蒙ACE Java应用框架
3.1ACE运行时简介
3.1.1ACE针对全场景开发
3.1.2ACE支持的两种UI框架
3.2ACE开发中的核心概念
3.2.1Ability和Slice
3.2.2Ability分类
3.2.3鸿蒙应用包结构
3.3创建一个ACE Java项目
3.3.1新建ACE Java项目
3.3.2编写界面布局
3.3.3编写界面逻辑代码
3.3.4通过模拟器预览效果
3.3.5日志HiLog的使用
3.4ACE Java项目目录结构
3.4.1项目整体结构
3.4.2项目的配置文件
3.4.3资源文件的使用方式
3.5ACE Java UI布局
3.5.1通过XML的方式创建布局
3.5.2通过编码的方式创建布局
3.5.3鸿蒙常见布局方式
3.6ACE Java UI基础组件
3.6.1组件与组件容器
3.6.2文本组件Text
3.6.3按钮组件Button
3.6.4文本输入框组件TextField
3.6.5图片组件Image
3.6.6TabList和Tab组件
3.6.7Picker组件
3.6.8复选框组件CheckBox
3.6.9单选按钮组件RadioButton
3.6.10信息提示框组件ToastDialog
3.6.11弹框组件CommonDialog
3.6.12进度条组件ProgressBar
3.6.13滑块组件Slider
3.6.14ScrollView组件
3.6.15ListContainer组件
3.6.16PageSlider组件
3.6.17系统剪贴板服务
3.6.18组件总结
3.7线程管理
3.7.1线程管理
3.7.2线程间通信
3.8网络媒体与设备
3.8.1网络管理
3.8.2设备的位置信息
3.8.3视频
3.8.4图像
3.8.5相机
3.8.6声频
第4章面向Ability开发
4.1Ability分类
4.2Page Ability
4.2.1Page Ability的创建
4.2.2Page Ability页面导航
4.2.3Page Ability的生命周期
4.2.4Ability Slice的生命周期
4.3Service Ability
4.3.1Service Ability概述
4.3.2Service Ability生命周期
4.3.3创建Service Ability
4.3.4启动Service Ability
4.3.5关闭Service Ability
4.3.6连接远程Service Ability
4.3.7前台Service Ability
4.4Data Ability
4.4.1DataAbility概述
4.4.2DataAbility创建本地数据库
4.4.3DataAbility本地数据库数据操作
4.4.4跨设备访问DataAbility
4.5本章小结
第5章鸿蒙ACE JavaScript应用框架
5.1ACE JavaScript框架介绍
5.1.1ACE JavaScript框架特性
5.1.2ACE JavaScript整体架构
5.1.3ACE JavaScript运行流程
5.1.4ACE JavaScript数据绑定机制
5.2ACE JavaScript语法详细讲解
5.2.1HML语法
5.2.2CSS语法
5.2.3JavaScript逻辑
5.2.4多语言支持
5.3ACE JavaScript布局
5.3.1FlexBox布局
5.3.2Grid布局
5.4ACE JavaScript内置组件
5.4.1基础组件
5.4.2媒体组件
5.4.3画布组件
5.5自定义组件
5.5.1自定义组件的定义
5.5.2自定义组件事件与交互
5.6页面路由
5.6.1单页面路由
5.6.2多页面路由
5.7应用JavaScript接口
5.7.1弹框
5.7.2网络访问
5.7.3分布式迁移
5.8系统JavaScript接口
5.8.1消息通知
5.8.2地理位置
5.8.3设备信息
5.8.4应用管理
5.8.5媒体查询
5.8.6振动
5.8.7应用配置
5.9多实例接口
5.10本章小结
第三篇分布式开发篇
第6章鸿蒙分布式任务调度
6.1分布式任务调度
6.1.1分布式任务调度介绍
6.1.2分布式任务调度约束与限制
6.1.3分布式调度场景介绍
6.1.4分布式调度接口说明
6.2实现跨设备打开FA
6.3实现跨设备FA迁移
6.4实现跨设备可撤回FA迁移
第7章鸿蒙分布式数据服务
7.1分布式数据服务介绍
7.2分布式数据库权限设置
7.3分布式数据库的基本操作
7.4订阅分布式数据变化
7.5手动同步分布式数据库
7.6分布式数据库的谓词查询
第8章鸿蒙分布式文件服务
8.1分布式文件系统介绍
8.1.1分布式文件系统基本概念
8.1.2分布式文件系统运作机制
8.1.3分布式文件系统约束与限制
8.2分布式文件系统操作
第四篇应用实战篇
第9章智慧手表应用开发案例(Java版)
9.1天气预报App介绍
9.2天气预报App技术点
9.3天气预报App界面实现
9.4天气预报App核心代码
9.4.1配置App中所需的权限
9.4.2创建ListContainer数据类
9.4.3创建ListContainer数据提供类
9.4.4绑定ListContainer数据提供类
9.4.5处理ListContainer单击事件处理
9.4.6多线程处理事件和网络请求
9.4.7格式化JSON数据
9.4.8封装网络访问类获取网络数据
9.4.9通过设备地理定位获取默认天气
9.4.10通过语音查询天气
9.5本章小结
第10章多设备游戏开发案例(JavaScript版)
10.1五子棋游戏功能介绍
10.2五子棋游戏技术要点
10.3五子棋游戏界面实现
10.3.1游戏界面布局
10.3.2画棋盘的网格
10.3.3绘制棋盘背景
10.4五子棋逻辑实现(AI篇)
10.4.1在棋盘画棋子
10.4.2实现落子判断
10.4.3赢法数组
10.4.4判断是否赢棋
10.4.5实现计算机AI落子
10.5五子棋逻辑实现(鸿蒙篇)
10.5.1多设备流转需要满足的条件
10.5.2多设备间游戏流转实现
10.6本章小结
第11章多设备应用开发案例(Java JavaScript版)
11.1鸿蒙涂鸦画板介绍
11.2共享涂鸦画板技术要点
11.3涂鸦画板的界面实现
11.3.1涂鸦画板的界面布局
11.3.2涂鸦画板的界面样式
11.4涂鸦画板核心代码实现
11.4.1实现画板的自由绘制
11.4.2选择图片进行涂鸦
11.4.3查找附近的手机设备
11.4.4实现涂鸦作品发送至已连接手机
11.4.5实现画板实时共享功能
11.5本章小结
第12章鸿蒙应用签名与发布
12.1准备应用发布的签名文件
12.1.1生成密钥和证书请求文件
12.1.2创建AGC项目
12.1.3创建HarmonyOS应用
12.1.4申请应用发布证书
12.1.5申请应用Profile文件
12.2构建类型为Release的HAP
12.2.1配置签名信息
12.2.2构建发布的HAP文件
12.3将应用发布到华为应用市场
12.3.1登录AppGallery Connect网站
12.3.2完善应用发布信息
12.3.3设置版本信息
12.3.4添加上传HAP包
12.3.5填写应用隐私说明
12.3.6设置是否必须联网才可以使用
12.4本章小结
第五篇硬件开发篇
第13章搭建OpenHarmony开发环境
13.1OpenHarmony编译环境准备
13.1.1虚拟机安装Ubuntu系统
13.1.2配置OpenHarmony编译环境
13.1.3使用MobaXterm远程登录Ubuntu
13.1.4下载OpenHarmony源代码
13.1.5编译OpenHarmony源代码
13.1.6通过Samba共享Linux源代码
13.2OpenHarmony烧录环境准备
13.2.1安装Visual Studio Code
13.2.2安装Node.js
13.2.3安装JDK
13.2.4安装HPM
13.2.5安装DevEco Device Tool插件
13.2.6安装C/C 插件
13.2.7导入和配置OpenHarmony工程
13.3本章小结
第14章HiSpark开发板开发入门
14.1HiSpark系列开发套件介绍
14.1.1HiSpark WiFi IoT开发套件
14.1.2HiSpark DIY IPC套件
14.1.3HiSpark AI Camera套件
14.2HiSpark Hi3861开发板
14.2.1开发板介绍
14.2.2烧录HarmonyOS
14.2.3添加Hi3861显示屏驱动
14.3HiSpark Hi3516开发板
14.3.1开发板简介
14.3.2烧录HarmonyOS
14.3.3安装鸿蒙应用程序
14.4HiSpark Hi3518开发板
14.4.1开发板简介
14.4.2烧录HarmonyOS
14.5本章小结