1 HarmonyOS是什么
HarmonyOS是华为公司自主研发的,基于微内核的全场景分布式操纵系统。
1.1 微内核
相比基于Linux(宏内核)的Android操作系统,基于微内的HarmonyOS,更安全,更稳定,可维护性更好。
1.2 全场景
可应用于包含但不限于移动通信终端等在内的,各种各样的硬件设备上。
1.3 分布式
借助软总线将多个设备组成超级虚拟终端,实现不同设备间的互联互通和信息共享。HarmonyOS堪称物联网时代的操作系统。
2 HarmonyOS的架构
HarmonyOS总体架构2.1 内核层
目前华为的大部分HarmonyOS设备依然基于Linux内核,LiteOS属于微内核,但仅限于华为的物联网产品。不同的系统内核借助内核抽象层(KAL)向上层提供统一的访问接口,以屏蔽系统内核间的差异性。
2.2 系统服务层
将一些非核心功能从系统内核中抽离出来,以体现微内核操作系统的设计原则。系统服务与(微)内核一起实现操作系统内核的功能。
2.2.1 方舟多语言运行时子系统
HarmonyOS通过方舟多语言运行时子系统,在操作系统的内核级别处理编译器产出的二进制指令,其性能高于依赖ART虚拟机执行代码的Android。
方舟多语言运行时子系统与ART虚拟机2.3 应用框架层
为应用程序提供访问系统服务的接口。
应用程序与应用框架HarmonyOS的应用框架就相当于Windows SDK或Unix/Linux系统调用。
应用框架与SDK或系统调用3 HarmonyOS应用的开发模式
用Java创建界面,同时实现业务逻辑;用XML描述界面,用Java实现业务逻辑;以上两种模式,都可以在Java中通过JNI调用C或C++编写的库;用HML描述界面的结构,用CSS描述界面的外观,用JavaScript实现业务逻辑。XMLJavaC/C++HMLCSSJavaScript***********4 HarmonyOS应用的组织结构
HarmonyOS上的应用由一到多个HAP (HarmonyOS Ability Package)组成。
HAP分为两种类型:
entry
入口包,相当于Windows上的exe文件feature
特征包,相当于Windows上的dll文件应用需要为其适配的每种设备提供一个相应的入口包。只适配一种设备的应用只有一个入口包。无论哪种情况,特征包的数量都没有限制。
其中:
5 Ability(能力)
Ability是应用所具备能力的抽象。
Ability6 HarmonyOS应用的开发环境
6.1 node.js
下载node.js6.2 HUAWEI DevEco Studio
https://developer.harmonyos.com/en/develop/deveco-studio
下载HUAWEI DevEco Studio6.3 HarmonyOS SDK
DevEco Studio
Configure
Settings
HarmonyOS SDK 安装HarmonyOS SDK7 第一个HarmonyOS应用
7.1 创建工程
DevEco Studio
Create HarmonyOS Project
Empty Ability(Java)
Project Name: Hello
Project Type: Application
Package Name: com.<你的姓名全拼>.hello
Save Location: <工程所在目录>\Hello
Compatible API Version: SDK: API Version 5
Device Type: Phone例程:Hello...\Hello\entry\src\main\resources\zh\element\string.json
...\Hello\entry\src\main\resources\en\element\string.json
7.2 在本地预览器中运行
在本地预览器(中文)中的显示效果在本地预览器(英文)中的显示效果7.3 在远程模拟器中运行
在远程模拟器(中文)中的显示效果在远程模拟器(英文)中的显示效果7.4 在真机设备中运行
在真机设备(中文)的显示效果在真机设备(英文)中的显示效果有关如何将自己开发的HarmonyOS应用,部署到真机设备并运行调试的方法,将在后续课程中为大家介绍。
8 控制台输出
HiLog用于通过控制台输出日志信息,包括如下静态方法:
debug()
输出调试信息info()
输出一般信息warn()
输出警告信息error()
输出错误信息fatal()
输出致命错误这些方法的第一个参数是一个HiLogLabel类型的对象,表示日志标签,其构造方法包含如下三个参数:
type
日志类型,可取以下值:
HiLog.LOG_APP
HiLog.DEBUG
http://HiLog.INFOHiLog.WARN
HiLog.ERROR
HiLog.FATALdomain
服务域,采用十六进制整数形式,如:tag
标签名称通常将日志标签定义为类的静态成员变量。
在指定日志文本的格式化字符串中:
{private} (缺省)
表示私有输出{public}
表示公有输出如:
...\HiLog\entry\src\main\java\com\minwei\hilog\slice\MainAbilitySlice.java
运行效果如下图所示:
运行效果