HarmonyOS入门-环境及项目搭建

news2024/9/17 20:51:15

近来在学习HarmonyOS,虽然跟着入门项目敲了部分代码,但感觉还是有点云里雾里的,并且官方文档和视频课程只能说是一言难尽,所以打算通过写文章的方式记录下。

学习代码最好的方式是通过项目,官方提供的Demo还是挺不错的,但是没有讲解,且一些文件的命名让我不能见名知意,所以我打算按照自己的理解来重敲一下这部分代码,并写下注释,尽可能的以大白话的方式带大家入门。

所以接下来,我将搭配着文档解析+Demo解析的方式来学习鸿蒙。

1. 搭建环境

1.1 DevEco Studio下载安装

DevEco Studio下载地址

1、打开DevEco Studio下载地址,点击立即下载,然后选择适合自己的版本进行下载
在这里插入图片描述

在这里插入图片描述

2、下载完成后点击安装,一路点击Next

在这里插入图片描述

3、勾选添加环境变量,一路Next,直至安装完成。

在这里插入图片描述

1.2 配置环境

1.2.1 安装Node.js和Ohpm

  • Node.js。目前开发鸿蒙应用使用的是ArkTS语言,ArkTS是TypeScript的超集,是在TypeScript基础上做了扩展,而TypeScript又是JavaScript的超集。因为Node.js是开源跨平台的JavaScript的运行时环境,所以需要配置它。
  • Ohpm是HarmonyOS三方库的包管理工具(全名为OpenHarmony Package Manager)
  • (Node.js版本要求为v14.19.1及以上,且低于v17.0.0;对应的npm版本要求为6.14.16及以上)路径位置;如果本地没有合适的版本,可以选择Install按钮,选择下载源和存储路径后,进行在线下载,单击Next进入下一步。

在这里插入图片描述

后续可在Settings里查看这两个的安装位置

在这里插入图片描述

1.2.2 下载HarmonyOS SDK

该SDK开发工具包 包含

  • Previewer:应用/服务预览器
  • System-image-phone:本地模拟器Phone设备镜像文件
  • Toolchains:SDK工具链
  • JS:JS语言SDK包
  • ArkTS:ArkTS语言SDK包

在这里插入图片描述

后续可以在Setting里查看SDK安装目录

在这里插入图片描述

经过以上步骤,我们的DevEco Studio安装完毕,接下来让我们开始创建第一个项目吧。

2. 创建并运行鸿蒙项目

2.1 创建

1、在欢迎页单击Create Project,创建一个新工程

2、选择创建Application应用,选择EmptyAbility模版,点击Next

由于才开始学习,用不着复杂的模版,创建一个空的Ability即可,看到这,像不像Android里的Activity,一切都那么熟悉,所以学起来别有太大压力。

在这里插入图片描述

3、填写项目名称、保存地址,点击Finish即可。

在这里插入图片描述

Model中的Stage和FA有啥区别?

FA是鸿蒙早期模型,适合简单应用,而有些开发场景FA模型无法解决,为了更方便的开发出分布式环境下的复杂应用,从而推出了Stage模型。

其实不用管这些,使用默认的Stage即可。

2.2 运行

1、创建模拟器

首次运行,需要先创建模拟器,点击Device Manager

在这里插入图片描述

2、点击New Emulator,然后选择相应的配置即可。

注意,这里有LocalEmulator本地模拟器和Remote Emulator远程模拟器,使用远程模拟器需要注册登录华为帐号。

创建完毕后点击Actions中的启动即可。

在这里插入图片描述

3、启动模拟器成功后,点击运行即可
在这里插入图片描述
在这里插入图片描述

3. 分析第一个鸿蒙应用

1、AppScope > app.json5

应用的全局配置信息。

大白话:类似于Android中app模块下的build.gralde文件,但是只包含其中的以下内容,不包含依赖等

在这里插入图片描述

可以看到里面包含了

  • bundleName:包名
  • vendor:应用程序供应商
  • versionCode:版本号
  • versionName:版本名
  • icon:应用图标
  • label:应用名称

2、**entry:**应用/服务模块

大白话:类似于Android的app模块目录

  • src > main > ets:用于存放ArkTS源码

  • src > main > ets > entryability:应用/服务的入口。

    类似于Android中的Activity,是应用或者服务启动的入口

    默认会生成很多生命周期方法,注意看这个onWindowStageCreate()方法,在该方法内通过loadContent()加载了pages/index页面

    在这里插入图片描述

  • src > main > ets > pages:应用/服务包含的页面

    这个就类似于Android的Compose项目中的layout布局

    在这里插入图片描述

    在这里插入图片描述

  • **src > main > resources:**用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等

    • base>element

      存放字符串、整型数、颜色、样式等资源的json文件,每个资源均由json格式进行定义,例如:

      • boolean.json:布尔型
      • color.json:颜色
      • float.json:浮点型
      • intarray.json:整型数组
      • integer.json:整型
      • pattern.json:样式
      • plural.json:复数形式
      • strarray.json:字符串数组
      • string.json:字符串值

      在这里插入图片描述

    • base>media
      多媒体文件,如图形、视频、音频等文件,支持的文件格式包括:.png.gif.mp3.mp4等。

      在这里插入图片描述

    • base>profile和rawfile

      用于存储任意格式的原始资源文件

      注意:实际发现,所有的页面page都需要在profile中的main_pages.json此文件内进行注册,否则页面路由跳转时会找不到该页面

      在这里插入图片描述

3、src > main > module.json5

大白话:类似于Android中的Manifest文件

包含:

  • HAP的配置信息
    关于HAP,可参考这篇文章来了解下应用模型开发指南上新介绍

  • 应用在具体设备上的配置信息

  • 应用的全局配置信息。

在这里插入图片描述

4. 学习途径

通过以上内容,就能大概了解鸿蒙环境的搭建和鸿蒙项目的构成。其实,以上内容在官网上都有,下面我列出关于鸿蒙的官方学习资料,大家可以自己来学习。这些内容其实就够了,不建议去再买什么培训班的课程,都是智商税。(我按照自己的推荐重点先后列出)

途径1:

官方指南和API参考,各种内容的开发和API接口文档都能找到,可以重点看这个。

在这里插入图片描述

途径2:

HarmonyOS学堂

官方的这个学堂内容,规划的路径还是不错的,但是建议只看文档,别看视频,视频真的啥也不是还浪费时间。里面的案例Demo不错,但是有时会涉及其他内容没学到,搭配着指南和API文档最好。

在这里插入图片描述

途径3:

官方的Codelabs,里面有关于各部分内容的官方Demo,跟着项目学习最快,但是建议自己敲一遍而不是只是看一遍觉得看懂了就完事了。

在这里插入图片描述

途径4:

官方论坛,好多指南里没法找到的内容,在论坛里可以看到具体的解释,例如下面可以看到关于HAP、module等基本概念的解析。HarmonyOS开发体验官的好多内容写的很详细,像是官方的解释文档。遇到bug等问题在这里找准没错,毕竟互联网上关于鸿蒙的资料还很少。

在这里插入图片描述

途径5:

官网的学习路径,里面有一些关于各种业务模块的视频课程,这个我还没仔细看过,各位根据自己的需要来观看。

在这里插入图片描述

5. 最后

鸿蒙未来不知道会怎么样,但多学点对于自己是多一个机会。不焦虑,别看那些营销卖课公众号文章,跟着自己的节奏慢慢学习就好。
请添加图片描述

6. 参考文档

配置开发环境

创建和运行Hello World

工程模板和开发语言介绍

HarmonyOS体验官#Stage模型与FA 模型的异同

华为论坛

工程介绍

应用模型开发指南上新介绍

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA多线程之JMM

文章目录 1. Java内存模型2. 内存交互3. 三大特性3.1 可见性3.1.1 可见性问题3.1.2 原因3.1.3 解决方法 3.2 原子性3.3 有序性 4. 指令重排5. JMM 与 happens-before5.1 happens-before关系定义5.2 happens-before 关系 在继续学习JUC之前,我们现在这里介绍一下Java…

MySQL表的增删改查---多表查询和联合查询

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

眼科新视界:争议中的激光矫正手术

《眼科新视界:争议中的激光矫正手术》 一、眼科激光矫正手术:科技之光还是潜在风险? 1、激光矫正手术作为近年来眼科领域的热门技术,以其快速、安全、有效的特点吸引了众多近视、远视、散光等视力问题患者的关注。通过激光能量&…

怎么理解面向对象?一文带你全面理解

文章目录 1、类和对象(1)面向过程和面向对象初步认识(2)类的引入(3)类的定义(4)类的访问限定符及封装4.1 访问限定符4.2 封装 (5)类的作用域(6&am…

虹科Pico汽车示波器 | 免拆诊断案例 | 2019 款东风悦达起亚K2车怠速起停系统工作异常

一、故障现象 一辆2019款东风悦达起亚K2车,搭载G4FG发动机,累计行驶里程约为9 400 km。车主反映,行驶至路口停车等红灯时,怠速起停(ISG)系统自动使发动机熄火,接着组合仪表提示“怠速起停已解除…

【MySQL】DDL的表操作详解:创建&查询&修改&删除(记得3点加上连接)

前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎! 本章主要内容面向接触过C Linux的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的…

8 款AI 绘画生成器:从文本创建 AI 艺术图像

人工智能正在影响各行各业,近年来它对创意产业的影响越来越大。由于AI绘画生成器的可操作性,许多人有机会用自己的想法进行艺术创作——即使他们没有接受过系统的专业艺术教育。 最先进的人工智能绘画生成器可能会改变我们未来创作艺术的方式。使用 AI …

外贸新人必看!外贸入行

Erica今天整理了做外贸的基础步骤,以及一些注意事项,认真看。 常见外贸概念 1、传统外贸:就是国内企业为老外生产加工出口,以OEM为主(为品牌代工),近年来由于国内企业创新能力提升,ODM(企业自主设计,贴老…

社区停车场管理系统由哪些部分组成?如何选择合适的社区停车场系统

在现代社区物业管理中,停车场的有效管理已成为提升居民满意度和物业服务质量的关键因素。随着居民对便捷生活的追求日益增长,一个高效、智能的停车场管理系统对于社区物业而言显得尤为重要和必要。它不仅能够提升社区内车辆管理的效率,保障居…

重大机遇,腾讯云优惠券免费领取入口整理,千元代金券一键搞定

腾讯云代金券领取渠道有哪些?腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券,大家也可以在腾讯云百科蹲守代金券,因为腾讯云代金券领取渠道比较分散,腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…

创建可引导的 macOS 安装器

你可以将外置驱动器或备用宗卷用作安装 Mac 操作系统的启动磁盘。 以下高级步骤主要适用于系统管理员以及其他熟悉在“终端”中输入命令的经验丰富的用户。 升级 macOS 或重新安装 macOS 不需要可引导安装器,但如果你要在多台电脑上安装 macOS,而又不…

武汉星起航:领航跨境电商,助力新手小白逐梦全球市场

在全球贸易日益频繁的今天,跨境电商已成为企业拓展国际市场的重要途径。作为跨境电商行业的领军者,武汉星起航电子商务有限公司自2017年起便深耕亚马逊自营店铺领域,积累了丰富的实战经验。公司在2020年的正式成立,其跨境电商业务…

最高一次性领取50万元!2024年全国各省市ITSS补贴汇总

根据ITSS官方数据表明,截止于3月21日,ITSS下证数据高达8000,全国各地的企业都有办理ITSS资质,足以见得ITSS在市场上的需求有多高,办理ITSS除了可以让企业自身的发展更好,部分地区的企业办理ITSS也是可以领取…

十二、MySQL 主从复制+高可用+读写分离

目录 一、mysqlkeeplived实现高可用LVS负载均衡 一、什么是高可用 二、为什么要用高可用 三、高可用的作用 四、keeplived 是什么?它用在哪里 五、安装mysql以及配置主从 六、keepalived安装 1、配置 单VIP 实现高可用 master上配置 2、backup上的配置 3、…

【感悟《剑指offer》典型编程题的极练之路】01数组篇!

​​​​​​​ ​​​​​​​ 个人主页:秋风起,再归来~ ​​​​​​​ 文章所属专栏:《剑指offer》典型编程题的极练之路 ​​​​​​​ ​​​​​​​ …

Android Audio相关

AudioManager AudioService的Bp端,调用AudioManager>AudioService(代码实现) AudioService 继承自IAudioService.Stub,为Bn端 AudioSystem AudioService功能实现都依赖于AudioSystem,AudioService通过AudioSys…

python的FastAPI 快速入门

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

ESM对比CommonJS

以下内容均总结自es-modules-a-cartoon-deep-dive 1. ESM是异步的而CommonJS是同步的 异步是ESM面临的最大挑战。和CommonJS的执行环境Node获取模块文件的方式不同,ESM获取模块文件是通过网络。如果ESM从获取到执行所有模块都是顺序进行会导致主线程长期处于pendi…

AI预测福彩3D第15弹【2024年3月20日预测--第3套算法重新开始计算第4次测试】

今天咱们继续对第3套算法进行第4次测试,第3套算法加入了012路的权重。废话不多说了,直接上结果吧~ 最终,经过研判分析,2024年3月21日福彩3D的七码预测结果如下: 百位:4 5 7 1 0 6 2 十位:3 1 5 …

第十节HarmonyOS 常用容器组件4-Grid与GridItem

1、描述 网格容器,由行和列分割的单元格所组成,通过指定“项目”所在的单元格做出各种各样的布局。 子组件 包含GridItem子组件。 3、接口 Grid(scroller?: Scroller) 4、参数 参数名 参数类型 必填 描述 scroller Scroller 否 可滚动组件…