鸿蒙:从0到“Hello Harmony”

效果展示

一.概述

明年华为鸿蒙就不再兼容Android生态了,作为拥有7亿终端用户的华为,建立自己的生态也是理所当然。

所以对HarmonyOS的研究也是众多开发者绕不开的坎了。

今天这篇博文主要实现一个“Hello Harmony!”的Demo。

二.官方链接

1.HarmonyOS源码

鸿蒙是开源系统,官方源码放在Git码云(Gitee)上,有多种方式可以获取:

官方源码下载:OpenAtom OpenHarmony

Gitee地址:OpenHarmony: OpenHarmony开源项目

2.HarmonyOS Developer

鸿蒙开发者论坛:

HarmonyOS应用开发官网,开发者论坛

3.开发工具

下载链接:HUAWEI HarmonyOS DevelopTools Download

各种开发工具都有,其中鸿蒙应用开发是和Android Studio很像的DevEco Studio

三.安装开发工具

软件下载:HarmonyOS:DevEco Studio下载与安装

1.运行环境要求

建议电脑配置:

  • 操作系统:Windows10 64位
  • 内存:8GB及以上
  • 硬盘:100GB及以上
  • 分辨率:1280*800像素及以上

2.下载和安装DevEco Studio

下载后一路安装,图片演示安装在C盘,实际安装时建议尽量不要装在C盘:

单击Next,直至安装完成

安装完成后,单击Finish完成安装

四.配置开发环境

第一次运行DevEco Studio,需要进行一些配置

配置过程中需要选择下载安装 npm 和 Node.js,如果没有就都装上。

1.下载npm

华为默认npm仓:

2.安装Node.js

设置Node.js信息,可以指定本地已安装的Node.js

  • Node.js版本要求为v14.19.1及以上,且低于v15.0.0;
  • 对应的npm版本要求为6.14.16及以上,且低于7.0.0版本

3. 下载SDK

SDK Components Setup界面,设置OpenHarmony SDK和HarmonyOS SDK存储路径,单击Next进入下一步。

OpenHarmony SDK和HarmonyOS SDK不能设置为同一个路径,且路径中不能包含中文字符。

在弹出的SDK下载信息页面,Accept License后,单击Next开始下载SDK。

等待SDK下载完成后,单击Finish,完成SDK的下载,界面会进入到DevEco Studio欢迎页

五.创建一个新工程

打开DevEco Studio,在欢迎页单击Create Project,创建一个新工程,选择“Empty Ability”模板,Next

工程创建完成后,DevEco Studio会自动进行工程的同步,同步成功如下图所示:

 

这里有个坑,有时候会报个如下错误:

ohpmERROR: Install failed ENOENT: no such file or directory,stat 'E:\HarmonyOS\MyApplication\oh_modules\@ohos\hypium'

意思就是在 "E:\HarmonyOS\MyApplication\oh_modules\@ohos\" 目录下没有找到 hypium,这是个开源js包

在新建的工程根目录搜一下hypium,会发现在我工程的这个目录下是有的

把这个 hypium包 整个拷到 "E:\HarmonyOS\MyApplication\oh_modules\@ohos\" 目录下,然后再同步工程,就OK了!

六.模拟器

由于我手上木有华为手机,所以暂时需要使用模拟器调试,因此需要配置模拟器

DevEco Studio ——> Tools  ——> Device Manager

模拟设备管理器会被调起:

模拟器占用空间较大,可以通过Edit修改模拟器到空闲空间较大的盘

New Emulator 就是新建一个模拟设备:

 

点击Finish,一个模拟设备就新建完成了

再打开模拟设备管理器,就可以看到里面有一个模拟设备了:

如果要运行这个模拟设备,在管理器界面选择并点击绿色三角标运行

第一次启动会稍微慢一点。

    

七.运行

我上面创建的Empty Ability工程,它其实就是一个实现了"Hello World"输出的空工程

把"Hello World"稍微改改,改成"Hello Harmony"

模拟管理器中先启动一个需要调试的模拟Device,DevEco Studio的Device选择它

然后Run

最终效果如博文开头所示

注意:

这里也有个坑,第一次运行程序时出现这样的错误:Error while Deploying HAP

错误原因不知道是啥

但是我把模拟器安装路径从外接固态硬盘换到了电脑存储D盘后,再运行就可以了,可能是磁盘读写速度影响,啥东东自动加载不成功导致。

八.结束语

鸿蒙环境配置,工具安装讲解到此结束

下一篇开启鸿蒙UI开发之旅

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/150618.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ChatGLM3-6B:新一代开源双语对话语言模型,流畅对话与低部署门槛再升级

项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实…

SystemVerilog学习 (6)——验证平台

一、概述 测试平台(Testbench)是整个验证系统的总称。它包含了验证系统的各个组件、组件之间的互联关系,测试平台的配置与控制等, 从更系统的意义来讲,它还包括编译仿真的流程、结果分析报告和覆盖率检查等。 从狭义上…

【ArcGIS Pro二次开发】(76):面积平差工具

之前做过一个【三调土地利用现状分类面积汇总】的工具,在流程中使用了面积平差的方法。 考虑了在其它场合可能也需要进行面积平差,因此单独提取出来作为一个工具。 平差实现的方法如下图: 主要的计算过程如上图所示,算出总面积差…

ubuntu下C++调用matplotlibcpp进行画图(超详细)

目录 一、换源 二、安装必要的软件 三、下载matplotlibcpp 四、下载anaconda 1.anaconda下载 2.使用anaconda配置环境 五、下载CLion 1.下载解压CLion 2.替换jbr文件夹 3.安装CLion 4.激活CLion 5.CLion汉化 6.Clion配置 六、使用CLion运行 七、总结 我的环…

总结1057

考研倒计38天 极限冲刺day1 今日共计学习13h33m,为了能走出备考的低谷阶段,来一场与自我的较量。在尽可能保证效率的情况下,玩命干。考研这件事,从来不是因为看到了希望才去努力,而是玩命努力后才看到希望。

通过IP地理位置阻止网络攻击

随着网络技术的不断发展,网络安全问题日益引起人们的关注。网络攻击者往往隐藏在虚拟的网络世界中,难以追踪其真实身份和位置。然而,近年来技术专家们借助IP地址定位的方法来阻止网络被攻击,这种方法引起了广泛关注。本文将探讨通…

posix定时器的使用

POSIX定时器是基于POSIX标准定义的一组函数,用于实现在Linux系统中创建和管理定时器。POSIX定时器提供了一种相对较高的精度,可用于实现毫秒级别的定时功能。 POSIX定时器的主要函数包括: timer_create():用于创建一个定时器对象…

图解分布式事务实现原理(一)

参考 本文参考https://zhuanlan.zhihu.com/p/648556608,在小徐的基础上做了个人的笔记。 分布式事务场景 事务核心特性 在聊分布式事务之前,我们先理清楚有关于 “事务” 的定义. 事务 Transaction,是一段特殊的执行程序,其需…

基于ChatGPT的文本生成艺术框架—WordArt Designer

WordArt Designer是一个基于gpt-3.5 turbo的艺术字生成框架,包含四个关键模块:LLM引擎、SemTypo、Styltypo和TextTypo模块。由gpt-3.5 turbo驱动的LLM引擎可以解释用户输入,从而将抽象概念转化为具体的设计。 SemTypo模块使用语义概念优化字体设计&…

C++入门(1)—命名空间、缺省参数

目录 一、什么是C 1、C关键字(C98) 2、C兼容C 二、C程序预处理指令 三、命名空间 1、命名冲突 第一种: 第二种: 2、域作用限定符 3、实现命名空间 4、命名空间冲突 5、访问命名空间 6、命名空间“std” 四、输入输出 1、定义 2、自动识…

【Git企业开发】第七节.多人协作开发

文章目录 前言 一、多人协作开发 1.1 多人协作一 1.2 多人协作二 1.3 远程分支删除后,本地 git branch -a 依然能看到的解决办法 总结 前言 一、多人协作开发 1.1 多人协作一 目前,我们所完成的工作如下: 基本完成Git的所有本地库的相关操作&#xff0…

demo(二)eurekaribbon----服务注册、提供与消费

前一篇实现了服务注册中心的搭建,并提供服务注册到注册中心上。在之前的基础上,实现服务消费。 一、相关介绍 1、RestTemplate工具 2、LoadBalanced注解 二、ribbon示例: 先启动eureka-service注册中心,再将eureka-client修改…

第十九章总结

一.Java绘图类 1.Graphics类 Graphics类是所有图形上下文的抽象基类,它允许应用程序在组件以及闭屏图像上进行绘制。Graphics类封装了Java支持的基本绘图操作所需的状态信息,主要包括颜色、字体、画笔、文本、图像等。 2.Graphics2D类 Graphics2…

Android 10.0 framework层设置后台运行app进程最大数功能实现

1. 前言 在10.0的定制开发中,在系统中,对于后台运行的app过多的时候,会比较耗内存,导致系统运行有可能会卡顿,所以在系统优化的 过程中,会限制后台app进程运行的数量,来保证系统流畅不影响体验,所以需要分析下系统中关于限制app进程的相关源码来实现 功能 2.framewo…

过滤器模式 rust和java的实现

文章目录 过滤器模式实现 过滤器模式实现javarustjavarust rust代码仓库 过滤器模式 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象&…

【miniQMT实盘量化3】获取历史行情数据

前言 上篇文章,介绍了如何与miniQMT建立连接,这篇开始,我们会深入探讨miniQMT的每个功能接口。首先,从获取历史数据开始。 迅投的官方文档目前已经更新,miniQMT对应原生API部分 接口汇总 与历史行情数据相关的接口&a…

2023.11.15 每日一题(AI自生成应用)【C++】【Python】【Java】【Go】 动态路径分析

目录 一、题目 二、解决方法 三、改进 一、题目 背景: 在一个城市中,有数个交通节点,每个节点间有双向道路相连。每条道路具有一个初始权重,代表通行该路段的成本(例如时间、费用等)。随着时间的变化&am…

PPT转PDF转换器:便捷的批量PPT转PDF转换软件

在数字化时代,文档转换已成为日常工作不可或缺的一环。特别是对于那些需要转发或发布演示文稿的人来说,如果希望共享给他人的PPT文件在演示过程中不被修改,那么将PPT文件转换为PDF格式已经成为一个常见的选择。大多数PDF阅读器程序都支持全屏…

debian 修改镜像源为阿里云【详细步骤】

文章目录 修改步骤第 1 步:安装 vim 软件第 2 步:备份源第 3 步:修改为阿里云镜像参考👉 背景:在 Docker 中安装了 jenkins 容器。查看系统,发现是 debian 11(bullseye)。 👉 目标:修改 debian bullseye 的镜像为阿里云镜像,加速软件安装。 修改步骤 第 1 步:…

深度学习+python+opencv实现动物识别 - 图像识别 计算机竞赛

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 inception_v3网络5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 *…