抢先学鸿蒙(HarmonyOS)2.0,你就是下一个大咖!

目录

1. 你不知道的鸿蒙(HarmonyOS)

2. 搭建HarmonyOS开发环境

3. 开发第一个基于Java的TV App

4. 如何运行HarmonyOS App

5. 开发第一个基于JS的智能手表App

6. 李宁老师未来关于鸿蒙的课程

1. 你不知道的鸿蒙(HarmonyOS)

2020年9月10日,华为开发者大会发布了鸿蒙(HarmonyOS)2.0。我在2020-9-11日也发布了全球首套鸿蒙2.0 App开发视频课程《鸿蒙(HarmonyOS)2.0入门与实战》【提前一个月做完了,由于保密协议的原因,只能在发布会后发布视频课程】。HarmonyOS是全场景操作系统。也就是说,从理论上,HarmonyOS可以在任何平台上运行(包括但不限于PC、手机、平板电脑、车载电脑、手表、iot设备等)。那么这是怎么做到的呢?

大家知道,不管是什么样的设备,通常由下面3个因素决定到底能运行什么的系统:

(1)CPU架构(x86、ARM、RISC-V等)

(2)CPU的处理能力

(3)内存

目前大多数硬件设备,CPU架构大多是x86和ARM的。这一点与OS内核有关。目前HarmonyOS支持ARM架构。RISC-V和x86架构在未来也会支持。这些东西其实就是一个纯技术问题,支持也只是时间问题,解决并不费劲。

CPU处理能力和内存才是决定一个OS是否可运行的关键。如果OS运行时需要太多的资源(CPU处理能力、内存等),而且当硬件无法提供这么多资源时,OS将无法在该硬件上运行。对于很多OS,都是宏内核的。也就是说,很难将内核进行分解,形成需要更少资源的内核。所以通常来说,像Linux这种宏内核OS,需要的硬件配置都相对较高。例如,就算不安装GUI,Linux要想跑起来,并且比较顺畅,也需要几十MB内存,而很多低端设备(如iot设备)根本没有这么大的内存,甚至连几MB内存都没有,顶多也就几百KB,这么少的内存,根本无法跑Linux。

HarmonyOS采用了另外一种内核机制来设计,这就是微内核。微内核的每一部分都是可拆卸的。这样进可攻,退可守。如果硬件配置很高,就可以用完整的内核。如果硬件配置只有几百K,可以根据需要的功能,将消耗内存资源过多的模块从内核中去除(只需要进行配置即可),这样尽管牺牲掉一些功能,但仍然可以在低配的硬件中跑起来,而且拆分内核非常容易,所以HarmonyOS从理论上支出从KB级到GB级的设备。

2. 搭建HarmonyOS开发环境

要完HarmonyOS,首先要单击HarmonyOS的开发环境。现在通过下面的链接访问HarmonyOS的官方下载页面:

https://developer.harmonyos.com/cn/develop

会看到如下图所示的“立即下载”按钮

点进去,就是下载页面。在下载之前,看一下系统要求,要求Windows10 64位、8G内存。对于程序员来说,这个配置应该没问题。下面点击右侧“下载”按钮开始下载吧。但要注意,下载DevEco Studio,需要有华为开发者账号,没有的同学赶紧注册一个吧!

目前DevEco Studio 2.0仅支持Windows,所以如果用macOS或Linux的同学还需要等等了。下载完安装程序,里面就有一个exe文件,双击安装即可。这里省略了n步,在启动DevEco Studio的过程中,会下载一些组件,下载界面如下图所示。主要是java运行时和一些工具链,就乖乖等着下完吧!

等安装完后,启动DevEco Studio就可以了。操作方式与Android Studio类似,其实就是模仿Android Studio做的。这里不再详述。创建工程的窗口如下图所示。

现在点击Create HarmonyOS Project,会弹出如下图的窗口。

在这个窗口中,目前有3个设备可以选择,这3个设备的描述如下:

(1)TV:智慧屏,也就是安装了HarmonyOS 2.0的华为智能电视;

(2)Wearable:智能手表;

(3)Lite Wearable:运动手表;

TV不需要解释,其实以后的HarmonyOS手机运行的系统与TV是类似的。就像Android运行在电视和手机上,效果其实是类似的。那么智能手表与运动手表有什么不同呢?其实智能手表中运行的HarmonyOS属于富鸿蒙(L3以上的鸿蒙)。支持用Java和JS开发,Java的开发方式与Android类似,JS的开发方式与微信小程序类似。而运动手表中运行的是轻鸿蒙【LiteOS】(L0到L2),只支持JS开发方式,与微信小程序的开发方法类似,只是支持的组件和API没有智能手表多。

TV和Wearable可以根据下面的模板创建支持JS开发和Java开发的工程。

3. 开发第一个基于Java的TV App

本文主要介绍如何用Java和JS开发TV和智能手表的App,本节首先介绍如何用Java开发TV App。首先在创建鸿蒙工程的窗口选择TV设备和Empty Feature Ability(Java)模板,如下图所示。

然后点击Next按钮,进入下一个页面。输入工程名(Project Name),然后工程位置(Save location)会自动变化,如下图所示。Package Name与Android的包类似,会作为鸿蒙App的唯一标识。Compatible SDK不需要懂,因为目前只有一个API版本。

最后点击Finish按钮创建工程。基于Java的HarmonyOS工程的目录结构如下图所示:

这个目录结构总体来上与Android Studio的Android工程类似,同样使用gradle来管理包。这里面有很多目录,但对我们最有用的是entry。该目录中包含了我们编写的Java代码。目录会生成一个Slice和一个Ability,还有一个入口文件MyFirstJavaTV。那么到底什么是Slice、什么是Ability,我后续会写文章详细描述。现在只要知道Ability相当于Android中的Activity,Slice相当于Android的Fragment即可。我们都知道,Activity需要布局才能显示具体的组件,而Ability显示组件则需要Slice。

4. 如何运行HarmonyOS App

由于目前还没有支持富鸿蒙2.0的硬件,所以只能用鸿蒙模拟器运行程序。不过目前鸿蒙模拟器只支持ARM处理器的设备。所以华为在服务端架设了一些ARM服务器,用来运行鸿蒙App。然后将运行后的UI传给客户端。其实目前IDE中的模拟器其实是一个鸿蒙预览器。下面就说一下如何利用鸿蒙预览器运行鸿蒙App。

首先要启动鸿蒙预览器。也可以称为鸿蒙虚拟设备(HVD)。点击Tools -> HVD Manager菜单项,会显示如下图所示的HVD Manager窗口。不过在打开HVD Manager窗口之前,还会弹出一个如下图的页面,要求登录华为开发者网站。通常第一次登录成功后,后续就不需要再登录了。如果有华为手机,也可以通过扫码登录。

登录成功后,会弹出下面的窗口,要求授权,点击“允许”按钮即可。

成功授权后,就会在HVD Manager窗口中显示虚拟设备,如下图所示。

目前有两个设备:TV和Wearable。其中TV是华为智慧屏、Wearable是智能手表。先启动TV(双击即可)。

启动虚拟设备后,在IDE右侧会显示如下图的虚拟设备界面,右侧的按钮用来控制虚拟设备。

现在就可以在虚拟设备上运行鸿蒙App了。

点击右上角entry右侧的箭头按钮,如下图所示。

会弹出如下图的设备选择窗口,目前只有一个虚拟设备,选择该设备,点击OK按钮。

选择虚拟设备后,App就会在虚拟设备中运行,效果如下图所示:

要注意的是,虚拟设备只有1小时的使用时间,如果超过1小时,需要再次申请,然后就会重新计时,而且一个账号同时只能申请一个虚拟设备。

这是我们运行的第一个鸿蒙App:Hello World。如果要修改Hello World,需要打开MainAbilitySlice.java文件,然后将Hello World改成“世界你好”即可,该文件的完整代码如下:

  1. package com.example.myfirstjavatv.slice;
  2. import ohos.aafwk.ability.AbilitySlice;
  3. import ohos.aafwk.content.Intent;
  4. import ohos.agp.components.DirectionalLayout;
  5. import ohos.agp.components.DirectionalLayout.LayoutConfig;
  6. import ohos.agp.components.Text;
  7. import ohos.agp.colors.RgbColor;
  8. import ohos.agp.components.element.ShapeElement;
  9. import ohos.agp.utils.Color;
  10. import ohos.agp.utils.TextAlignment;
  11. public class MainAbilitySlice extends AbilitySlice {
  12. private DirectionalLayout myLayout = new DirectionalLayout(this);
  13. @Override
  14. public void onStart(Intent intent) {
  15. super.onStart(intent);
  16. LayoutConfig config = new LayoutConfig(LayoutConfig.MATCH_PARENT, LayoutConfig.MATCH_PARENT);
  17. myLayout.setLayoutConfig(config);
  18. ShapeElement element = new ShapeElement();
  19. element.setRgbColor(new RgbColor(255, 255, 255));
  20. myLayout.setBackground(element);
  21. Text text = new Text(this);
  22. text.setLayoutConfig(config);
  23. text.setText('世界你好');
  24. text.setTextColor(new Color(0xFF000000));
  25. text.setTextSize(50);
  26. text.setTextAlignment(TextAlignment.CENTER);
  27. myLayout.addComponent(text);
  28. super.setUIContent(myLayout);
  29. }
  30. @Override
  31. public void onActive() {
  32. super.onActive();
  33. }
  34. @Override
  35. public void onForeground(Intent intent) {
  36. super.onForeground(intent);
  37. }
  38. }

运行效果如下图所示:

5. 开发第一个基于JS的智能手表App

在上一节介绍了如何用Java开发鸿蒙TV App,本节会介绍如何用JS开发智能手表App,首先按下图创建智能手表的工程(工程名是MyFirstWatch)。

watch工程目录的结构与TV工程的结构类似,只是源代码除了java部分,还有js部分,而且多了个node_modules目录,用过Node的同学都应该很清楚,这个目录是保存Node中模块的。js目录包含了所有相关的JS、HTML和CSS代码。watch工程目录结构如下图所示。

现在着重看一下js目录,结构如下:

在js/default目录下,有3个子目录:common、i18n和pages。其中common是一些资源,如图像等。i18n用于国际化,默认有两个文件:en-US.json和zh-CN.json,分别表示英文和中文字符串。pages目录包含了一些代码文件。index是默认生成的首页目录。其中包含3个文件:index.css、index.hml和index.js。其中index.hml是定制的HTML文件(减少了部分标签,也增加了一些标签,但总体风格与HTML非常接近)。现在分别看一下这3个文件的代码:

从这3个文件的代码可以看出,与微信小程序的开发方式非常接近。而且大多数技术都是Web栈的,因此,只要会Web、微信小程序的程序员,很容易上手。

现在按前面的方式申请智能手表虚拟设备,效果如下图所示。

现在运行程序,会得到下面的结果:

如果要修改输出文本,可以直接修改国际化文件zh-CN.json,也可以直接修改index.js或index.hml文件。

6. 李宁老师未来关于鸿蒙的课程

大家都知道,我在2020-9-11号在B站发布了全球第一套鸿蒙开发课程:《鸿蒙(HarmonyOS)2.0入门与实战》

这套课程只是介绍了鸿蒙App开发的基本方式,以及基础组件的使用方法。鸿蒙的技术远不止这么多,在未来的一段时间,我将不定期推出关于鸿蒙各个方面的技术视频、书和文章。主要课程包括:

(1)全方位介绍鸿蒙App开发技术(Java和JS);

(2)鸿蒙相关智能硬件(可能是鸿蒙与arduino、树莓派在一起应用);

(3)各类项目实战(若干),包括独立的App项目,以及与智能硬件结合的项目;

(0)

相关推荐

  • HarmonyOS与15等高校合作相关课程,会和当年安卓和iOS一样火热吗

    5月24日消息,在鸿蒙开发者创新大赛颁奖典礼上,华为消费者业务软件部总裁王成录表示鸿蒙即将开源系统,并在武汉大学等15个学校开展harmonyOS课程.5月24日消息,在鸿蒙开发者创新大赛颁奖典礼上, ...

  • 36个月不卡!鸿蒙OS就是这么耐造

    早些年的安卓时代,卡顿是最令人头疼的事情,除了Google,各家手机厂商也都在想尽办法优化,其中华为在2016年的Mate 9手机.EMUI 5.0系统上,首次提出了18个月流畅不卡的口号. 之后,华 ...

  • 华为应该如何盘活鸿蒙系统?

    芯片掣肘问题使得华为消费者业务的发展备受压迫感,这一份强烈的压迫感之下,华为期盼在鸿蒙操作系统上的成功就表现的尤为强烈.在华为方舟编译器.HMS Core终端云服务生态系统架构先后亮相后,华为内部蛰伏 ...

  • 鸿蒙OS开放下载,单挑Android的华为鸿蒙系统长啥样?

    2019年5月,美国商务部宣布正式把华为列入"实体名单",谷歌对华为关上了Android的大门,华为如何逃出升天? 去年8月9日华为在国人的关切中,正式发布了操作系统鸿蒙OS.并宣 ...

  • 鸿蒙,发布!

    华为技术有限公司于2021年6月2日举行HarmonyOS 2及华为全场景新品发布会.这也意味着"搭载HarmonyOS(鸿蒙)的手机"已经变成面向市场的正式产品. 出品:陈凯星. ...

  • 华为刚刚开完的发布会,把我看哭了

    原创 机哥 好机友 昨天 就在刚刚,华为召开了今年的全场景新品发布会. 其中最受机友们关注的HarmonyOS,正式宣布来到手机上!而华为平板.华为手表等一众硬件新品,也接连发布. 可以说,机哥跟大家 ...

  • 真相了!鸿蒙OS能安装第三方App

    6月2日,华为鸿蒙HarmonyOS正式上线.机长也是第一时间用华为手机升级了HarmonyOS,体验后发现流畅度和续航表现比之前EMUI好些了,至于原安装在手机里面的第三方安卓App也能正常使用,学 ...

  • 收藏了~终于有大佬把鸿蒙OS讲明白了

    本文面向的是开发人员,主要想通过科普让大家了解一下鸿蒙开发.接下来,想给大家科普一下这个这么火的鸿蒙系统. 到底什么是鸿蒙 OS 在官网上看到鸿蒙 OS 的简介是,分布式能力造就新硬件.新交互.新服务 ...

  • 从零开发HarmonyOS(鸿蒙)手机小游戏——数字华容道

    前言 2月16号HarmonyOS2.0手机开发者Beta版已经发布了,作为"1+8+N"战略的重要入口和生态核心,怎么能少得了手机应用开发呢,今天将由深鸿会深大学习小组(Zzt_ ...

  • 鸿蒙OS2.0系统有什么功能

    就在12月16日华为公布了鸿蒙系统的目前所有的功能,并且开放的系统的内测招募,作为华为脱离安卓系统的第一个系统版本,是让很多小伙伴们期待的,那么鸿蒙OS2.0系统有什么功能?下面就让小编给大家介绍一下 ...

  • 实测鸿蒙OS比苹果iOS14更流畅?曝计划适配高通平台,即将大规模推送……

    导  读 据新浪科技消息,华为日前正式开通了华为HarmonyOS的官方微博.目前多方消息显示,最快在6月份,鸿蒙就有望正式开始规模化推送,华为Mate X2.Mate 40系列手机等将首批获升级. ...

  • 华为鸿蒙志在万物互联,而非替代安卓和iOS

    6月2日,华为发布了HarmonyOS 2,宣布正式适配手机,并公布了第一批可升级HarmonyOS 2的机型.这代表HarmonyOS问世2年来,全面覆盖手机.Pad.手表.智慧屏.音箱等各类智慧物 ...

  • 过去,华为手机“养成了”海思;现在,鸿蒙系统的出路在哪里?

    鸿蒙系统刷屏了. 2021年6月2日,华为发布多款搭载鸿蒙系统(HarmonyOS 2)的新产品.对于鸿蒙系统,华为表示,这是新一代智能终端操作系统: 为万物互联而生. 无论设备大小,只需一个系统.华 ...

  • 华为解决安卓最大难题!鸿蒙搞定多设备系统体验割裂

    6月2日晚间消息,华为今日举行HarmonyOS 2及华为全场景新品发布会. 华为消费者业务CEO余承东表示,华为过去十年在智能手机领域进行了多项创新,比如摄影.通信.解决安卓卡顿,续航.快充.新材料 ...

  • 全球首发:鸿蒙开源平台OpenGL

    基于安卓平台的 OpenGL(http://androidxref.com/9.0.0_r3/),实现功能的鸿蒙化迁移和重构,全球首发鸿蒙平台的 OpenGL-ISRC,代码已经开源,欢迎各位下载使用 ...

  • 抱歉了,谷歌安卓!华为鸿蒙OS2.0:全面开源

    众所周知,在各方施压之下,安卓统领的手机阵营,冒出一个不服软的鸿蒙OS. 它基于独特的设计理念,各个子程序互无干扰,保证系统流畅度的同时,还有强大的安全性,除此之外,它还可以兼容安卓系统APP,运存占 ...

  • harmonyOS应用组件两种创建方式

    harmonyOS应用组件两种创建方式

  • 华为鸿蒙OS发布会解析,这些干货你应该知道

    2021年6月2日晚间,华为用一场规模盛大的发布会,正式推出了HarmonyOS 2,并且还带来了多款搭载这一系统的硬件产品. 很显然对于许多朋友来说,这都是一场期待已久的活动.但一方面由于这场发布会 ...

  • 不爱跳槽的程序员集中在8-17k,揭晓中国开发者的真实现状

    本文参考最新发布<2020-2021中国开发者调查报告>,文内包含技术热点'未来趋势,意在全面深入地了解中国开发者群体的整体现状,应用开发技术以及工具. 纵观去年,在人工智能.云计算.大数 ...

  • 感受一下HarmonyOS 2.0.0.53鸿蒙操作系统

    感受一下HarmonyOS 2.0.0.53鸿蒙操作系统,这个模块化UI风格,你能接受吗?让人想起Windows手机版系统,也是强制绝对的模块化设计.鸿蒙这个模块化,我觉得更像是一个直达的app分区文 ...

  • 热乎!鸿蒙全家桶尝鲜,华为式万物互联是啥味儿的

    作者|王飞邮箱|wf@pingwest.com 鸿蒙来了. 华为开发者大会HDC2019上鸿蒙(HarmonyOS)的第一次亮相,距今也只有短短的两年时间. 对于华为的智能手机来说,两年时间不短了,它 ...

  • 零基础学习鸿蒙App开发 (第一天)

    最近发几条质疑华鸿蒙系统的微头条,受了很多网友的嘲笑,我准备零基础自学App开发,我自己是运维,主要工作是维护Linux和Windows 服务器,同时兼桌面运维和网络. 废话不说,这是今天下午的成果. ...