鸿蒙(HarmonyOS) 2.0开发初体验

鸿蒙(HarmonyOS) 2.0开发初体验
52jyhcc
52jyhcc
894
阅读
0
评论
2022年11月21日10:57:39 0 894

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开发还没体验过不知道具体咋样。

打赏 点赞(0)
weinxin
微信客服
问题+文章链接地址,发送到此微信:tourism52咨询处理。
java,基础,vspython,抽象,类与,接口 菜鸟教程

Java基础vsPython基础7-抽象类与接口

一、什么是抽象类如果一个类(class)定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract修饰。因为无法执行抽象方法,因此这个类也必须申明为抽象类(a...
学习,html5,这一,就够 菜鸟教程

学习HTML5这一篇就够了

学习HTML5这一篇就够了第一章 HTML5概述1.1、什么是HTMLHTML(HyperText Markup Language,超文本标记语言)是用来描述网页的一种语言,它不是...
全局,空间 菜鸟教程

全局空间

全局空间如果没有定义任何命名空间,所有的类与函数的定义都是在全局空间,与 PHP 引入命名空间概念前一样。在名称前加上前缀 \ 表示该名称是全局空间中的名称,即使该名称位于其它的命...
PHP,连接,MSsql,server,的,方法,总结,PHP,连接,MSsql, 菜鸟教程

PHP连接MSsql server的方法总结

PHP连接MSsql server的方法总结 本篇文章小编主要是想带大家一起来看一下扣丁学堂简述的PHP连接MSsql server的五种方法总结,对此感兴趣的小伙伴可以随着小编一...
XForms,教程,XForms,教程,是,下一代,的,HTML,表单, 菜鸟教程

XForms 教程

XForms 教程 XForms 是下一代的 HTML 表单。 在我们的 XForms 教程中,您将学习如何在应用程序中开始应用 XForms。 开始学习 XForms! 内容目录...
每天,学点,CSS3,专题,css3,属性,选择器,每天, 菜鸟教程

每天学点CSS3专题:css3属性选择器

每天学点CSS3专题:css3属性选择器 在css3还未出现之前。我们经常使用标签选择器、类选择器、id选择器等,今天我们开始介绍css3中新增的属性选择器。 第一步,先建立一个h...

评论列表 共有 0 条评论

暂无评论