HarmonyOS介绍
HarmonyOS 是一款面向未来、面向全场景(移动办公、运动健康、社交 通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上, 提出了基于同一套系统能力、适配多种终端形态的分布式理念, 能够支持多种终端设备。鸿蒙2.0(HarmonyOS 2.0)于2020.9.10在华为开发者大会上正式发布。
HarmonyOS 2.0
HarmonyOS 2.0 开始,向 128KB-128MB 物联网设备(如智能电视、可穿戴设备和汽车)开放,随后在 2021 年 4 将开发128MB 至 4GB 设备,2021 年 10 将开发 4GB 以上的设备。
技术架构
HarmonyOS 整体遵从分层设计,从下向上依次为:内核层、系统服务层、框 架层和应用层。系统功能按照系统 > 子系统 > 功能/模块逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。
HarmonyOS 架构
开发工具
目前鸿蒙学堂官网提供了开发工具和开发文档下载,开发工具为DevEco Studio目前正式版本是2.0.8.203,基于 IntelliJ IDEA Community 开源版本打造。我们从官网下载devecostudio-windows-tool-2.0.8.203.zip,然后解压安装。安装步骤很简单,基本一路点击下一步就好了。目前DevEco Studio只支持 Windows 平台,后续应该会支持 Linux 和 Mac 平台。
DevEco Studio Sdk setting
首次启动DevEco Studio需要下载SDK,也可以暂时跳过,稍后在Appearance&> System Settings > HarmonyOS SDK 界面设置存储路径,点击Apply便可以下载SDK。另外使用到 JS 语言开发 HarmonyOS 应用时需要安装NodeJs环境
开发体验
接下来我们用DevEco Studio 开发一个Hello World,首先我们点击Create HarmonyOS Project新建项目,在打开的新建项目界面我们可以看到设备项 支持TV、穿戴设备,暂时还没有手机选项。项目模板可选:Empty Feature Ability(JS)、Empty Feature Ability(Java)、List Feature Ability(JS)
新建HarmonyOS 项目
HarmonyOS 的应用由一个或多个Feature Ability或 Particle Ability组成,其中Feature Ability有 UI 界面,提供与用户交互的能力;而Particle Ability 无 UI 界面,提供后台运行任务的能力以及 统一的数据访问抽象。
项目新建成功后,目录结构如下图:
HarmonyOS app工程结构
libs 目录存放库文件是应用依赖的第三方代码形式.so 后缀文件
resources 目录存放应用的资源文件(字符串、图片、音频等
config.json 应用的 Ability 信息,用于声明应用的 Ability以及应用所需权限等信息
我们可以看到MainAbilitySlice.java应用入口,这里定义了一个白色区域块和一个hello world的文本,当然一般情况下我们不会将布局定义在这里,可以在resources > layout 定义XML布局文件,然后在MainAbilitySlice重写 onStart()方法加载 XML 布局:super.setUIContent(ResourceTable.布局XML文件)
@Override
public void onStart(Intent intent) {
super.onStart(intent);
LayoutConfig config = new LayoutConfig(LayoutConfig.MATCH_PARENT, LayoutConfig.MATCH_PARENT);
myLayout.setLayoutConfig(config);
ShapeElement element = new ShapeElement();
element.setRgbColor(new RgbColor(255, 255, 255));
myLayout.setBackground(element);
Text text = new Text(this);
text.setLayoutConfig(config);
text.setText("Hello World");
text.setTextColor(new Color(0xFF000000));
text.setTextSize(50);
text.setTextAlignment(TextAlignment.CENTER);
myLayout.addComponent(text);
super.setUIContent(myLayout);
}
应用运行
我们将刚才新建的工程在模拟器中运行,Lite Wearable项目暂不支持在模拟器中运行 。在 DevEco Studio 菜单栏,点击 Tools > HVD Manager。首次使用模拟器,点击 OK 按钮下载模拟器相关资源,然后将打开一个浏览器页面需要登录自己的华为账号才能继续下载(登录过程稍微有点慢)
华为鸿蒙远程模拟设备
我们选择工程对应的设备类型,点击run按钮启动设备,然后点击DevEco Stud工具栏的Run,在弹出的界面我们可以看到刚才启动的远程设备名称。
远程模拟运行
选择设备点击OK即可看到刚才示例helloworld工程运行效果。
hello world run
测试总结
从开发工具到hello world的顺利运行,感觉还是比较简单的,开发跟android差不多基本是一个模式,另外List Feature Ability(JS) JS开发还没体验过不知道具体咋样。