华为鸿蒙运行Hello World

前言:
从11月中旬开始通过B站帝心接触鸿蒙,至今一个半月左右不到,从小白到入坑,再到看官网案例,分析案例,了解技术点,还需要理清思路,再写博客,在决定写 <HarmonyOS第一课>构建更加丰富的页面之前,差点一度放弃了,新手村的案例就这么难,导致我花了很久的时间去研究,一步一步分析,CPU都烧坏了。
痛定思痛,还是从基础部分开始,夯实基础!!!
还是从官网笔记开始,在学习之前建议学完帝心视频或者黑马程序员视频

下载与安装DevEco Studio

在HarmonyOS应用开发学习之前,需要进行一些准备工作,首先需要完成开发工具DevEco Studio的下载与安装以及环境配置。

进入DevEco Studio下载官网,单击“立即下载”进入下载页面。
在这里插入图片描述
DevEco Studio提供了Windows版本和Mac版本选择,可以根据操作系统选择对应的版本进行下载。

这里以Windows为例进行安装。

下载完成后,双击下载的“deveco-studio-xxxx.exe”,进入DevEco Studio安装向导,在如下界面选择安装路径,默认安装于“C:\Program Files”下,也可以单击“Browse…”指定其他安装路径,然后单击“Next”。
在这里插入图片描述
如下安装选项界面勾选DevEco Studio后,单击“Next”,直至安装完成。
在这里插入图片描述安装完成后,单击“Finish”完成安装。
在这里插入图片描述

配置环境

双击已安装的DevEco Studio快捷方式进入配置页面,IDE会进入配置向导,选择Agree,同意相应的条款,进入配置页。
在这里插入图片描述
进入DevEco Studio配置页面,首先需要进行基础配置,包括Node.js与Ohpm的安装路径设置,选择从华为镜像下载至合适的路径。
在这里插入图片描述
单击’Next’进入SDK配置,设置为合适的路径,
在这里插入图片描述
点击’Next’后会显示’SDK License Agreement’,阅读相关协议后,勾选’Accept’。
在这里插入图片描述
单击‘Next’进入配置预览页,在这里进行配置项的确认。
在这里插入图片描述
确认完成后,单击’Next’,进入下一步。
在这里插入图片描述
等待配置自动下载完成,完成后,单击’Finish’,IDE会进入欢迎页,我们也就成功配置好了开发环境。
在这里插入图片描述准备工作完成后,接下来将进入DevEco Studio进行工程创建和运行。

创建项目

如果你是首次打开DevEco Studio,那么首先会进入欢迎页。
在这里插入图片描述

在欢迎页中单击Create Project,进入项目创建页面。
在这里插入图片描述
选择‘Application’,然后选择‘Empty Ability’,单击‘Next’进入工程配置页。
在这里插入图片描述
配置页中,详细信息如下:

  • Project name是开发者可以自行设置的项目名称,这里根据自己选择修改为自己项目名称。
  • Bundle name是包名称,默认情况下应用ID也会使用该名称,应用发布时对应的ID需要保持一致。
  • Save location为工程保存路径,建议用户自行设置相应位置。
  • Compile SDK是编译的API版本,这里默认选择API9。
  • Model选择Stage模型,其他保持默认即可。
    然后单击“Finish”完成工程创建,等待工程同步完成。

认识DevEco Studio界面

进入IDE后,我们首先了解一下基础的界面。整个IDE的界面大致上可以分为四个部分,分别是代码编辑区、通知栏、工程目录区以及预览区。

在这里插入图片描述

  1. 代码编辑区
    中间的是代码编辑区,你可以在这里修改你的代码,以及切换显示的文件。通过按住Ctrl加鼠标滚轮,可以实现界面的放大与缩小。
  2. 通知栏
    在这里插入图片描述
    在编辑器底部有一行工具栏,主要介绍常用信息栏,其中Run是项目运行时的信息栏,Problems是当前工程错误与提醒信息栏,Terminal是命令行终端,在这里执行命令行操作,PreviewerLog是预览器日志输出栏,Log是模拟器和真机运行时的日志输出栏。在后续使用中会陆续接触。
  3. 工程目录区
    左侧为工程目录区,后续章节会详细介绍
    在这里插入图片描述
  4. 预览区
    单击右上角Previewer,可以预览相应的文件UI展示效果。
    在这里插入图片描述
    预览器提供了一些基本功能,包括旋转屏幕,切换显示设备及多设备预览等。单击旋转按钮,可以切换竖屏和横屏显示的效果。
    在这里插入图片描述
    也可以单击如下列表按钮,切换显示的设备类型。弹出框内会显示Available Profiles,即可用的设备类型。
    在这里插入图片描述
    如单击Foldable切换设备,也可以单击旋转按钮切换Foldable的横竖屏显示模式。
    打开Muti-profile preview开关,可以实现多个尺寸设备的实时预览。
    点击放大
    单击预览器右上角组件预览按钮,可以进入组件预览界面。
    在这里插入图片描述
    组件预览模式可以预览当前组件对应的代码块。
    点击相应组件,代码文件中会框选对应的组件代码部分,下方则对应当前组件的基本属性。
    在这里插入图片描述

运行Hello World

IDE提供了本地模拟器供开发者使用,我们首先需要下载安装本地模拟器,然后进行运行工程。

  1. 单击顶部工具栏Tools>Device Manager。
    在这里插入图片描述
  2. 选择Local Emulator,设置合适的Local Emulator Location存储地址,然后单击’+New Emulator’。
    在这里插入图片描述
    选择Huawei_Phone手机模拟器,单击’Next’,进入模拟器系统下载页。
    在这里插入图片描述
    选择下载api9的系统镜像,然后单击’Next’,等待下载完成。
    在这里插入图片描述
    下载完成后,进行创建相应的手机模拟器,单击Finish完成创建。
    在这里插入图片描述
    下载完成后,在Local Emulator页面中会出现创建的手机模拟器,点击Actions按钮,就能够启动模拟器。
    在这里插入图片描述
    模拟器启动后,点击上方启动按钮,将Hello World工程运行到模拟器上。
    在这里插入图片描述
    IDE构建完成后,即可在模拟器上看到运行效果,我们也就完成了Hello World工程在模拟器上的运行。
    在这里插入图片描述

了解基本工程目录

工程级目录

工程的目录结构如下。
在这里插入图片描述
其中详细如下:

  • AppScope中存放应用全局所需要的资源文件。
  • entry是应用的主模块,存放HarmonyOS应用的代码、资源等。
  • oh_modules是工程的依赖包,存放工程依赖的源文件。
  • build-profile.json5是工程级配置信息,包括签名、产品配置等。
  • hvigorfile.ts是工程级编译构建任务脚本,hvigor是基于任务管理机制实现的一款全新的自动化构建工具,主要提供任务注册编排,工程模型管理、配置管理等核心能力。
  • oh-package.json5是工程级依赖配置文件,用于记录引入包的配置信息。

在AppScope,其中有resources文件夹和配置文件app.json5。AppScope>resources>base中包含element和media两个文件夹,

  • 其中element文件夹主要存放公共的字符串、布局文件等资源。
  • media存放全局公共的多媒体资源文件。

在这里插入图片描述

模块级目录

在这里插入图片描述
entry>src目录中主要包含总的main文件夹,单元测试目录ohosTest,以及模块级的配置文件。

  • main文件夹中,ets文件夹用于存放ets代码,resources文件存放模块内的多媒体及布局文件等,module.json5文件为模块的配置文件。
  • ohosTest是单元测试目录。
  • build-profile.json5是模块级配置信息,包括编译构建配置项。
  • hvigorfile.ts文件是模块级构建脚本。
  • oh-package.json5是模块级依赖配置信息文件。

进入src>main>ets目录中,其分为entryability、pages两个文件夹。

  • entryability存放ability文件,用于当前ability应用逻辑和生命周期管理。
  • pages存放UI界面相关代码文件,初始会生成一个Index页面。

在这里插入图片描述
resources目录下存放模块公共的多媒体、字符串及布局文件等资源,分别存放在element、media文件夹中。
在这里插入图片描述

app.json5

AppScope > app.json5是应用的全局的配置文件,用于存放应用公共的配置信息。
在这里插入图片描述
其中配置信息如下:

  • bundleName是包名。
  • vendor是应用程序供应商。
  • versionCode是用于区分应用版本。
  • versionName是版本号。
  • icon对应于应用的显示图标。
  • label是应用名。

module.json5

entry>src>main>module.json5是模块的配置文件,包含当前模块的配置信息。
在这里插入图片描述
其中module对应的是模块的配置信息,一个模块对应一个打包后的hap包,hap包全称是HarmonyOS Ability Package,其中包含了ability、第三方库、资源和配置文件。其具体属性及其描述可以参照下表1。

表1 module.json5默认配置属性及描述
在这里插入图片描述
对于abilities中每一个ability的属性项,其描述信息如下表2。
表2 abilities中对象的默认配置属性及描述
在这里插入图片描述

main_pages.json

src/main/resources/base/profile/main_pages.json文件保存的是页面page的路径配置信息,所有需要进行路由跳转的page页面都要在这里进行配置。
在这里插入图片描述

参考链接

DevEco Studio下载与安装:DevEco Studio下载与安装
配置开发环境:配置开发环境

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

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

相关文章

配置Docker私有仓库

# 打开要修改的文件 vi /etc/docker/daemon.json # 添加内容: "insecure-registries":["http://自己服务器的ip地址:设置的端口号"] # 重加载 systemctl daemon-reload # 重启docker systemctl restart docker在自己设定的文件夹内使用DockerCo…

仓库管理系统

基于SSM框架的仓库管理系统

.net8 AOT编绎-跨平台调用C#类库的新方法-函数导出

VB.NET AOT无法编绎DLL,微软的无能,正是你的机会 .net8 AOT编绎-跨平台调用C#类库的新方法-函数导出 1,C#命令行创建工程:dotnet new classlib -o CSharpDllExport 2,编写一个静态方法,并且为它打上UnmanagedCallersO…

PWM应用篇

一.什么是PWM 用图话,如下图所示: PWM(脉冲宽度调制):这是一种模拟控制方式,可以根据载荷的变化来调制晶体管基极或MOS管栅极的偏置,实现晶体管或MOS管导通时间的改变,从而改变开关稳…

【STM32】STM32学习笔记-TIM输入捕获(17)

00. 目录 文章目录 00. 目录01. 输入捕获简介02. 频率测量03. 输入捕获通道04. 主从触发模式05. 输入捕获基本结构06. PWMI基本结构07. 其它08. 附录 01. 输入捕获简介 IC(Input Capture)输入捕获 输入捕获模式下,当通道输入引脚出现指定电平…

SpringBoot 一个注解实现数据脱敏

什么是数据脱敏 数据脱敏是指对某些敏感信息,例如姓名、身份证号码、手机号、固定电话、银行卡号、邮箱等个人信息,通过脱敏算法进行数据变形,以保护敏感隐私数据。 数据脱敏通常涉及以下几种主要方法: 替换: 将原始…

Redis:原理+项目实战——Redis实战1(session实现短信登录(并剖析问题))

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:Redis:原理速成项目实战——Redis的Java客户端 📚订阅专栏:Redis速成 希望文章对你们有所帮助…

普中STM32-PZ6806L开发板(HAL库函数实现-PWM呼吸灯)

简介 实现PWM呼吸灯。 主芯片 STM32F103ZET6呼吸灯引脚 : PC7电路原理图 LED8 电路图 LED8 与 主芯片连接图 其他知识 公式 PWM周期公式: Tpwm ( (ARR 1) * (PSC 1) ) / Tclk Tclk为定时器的输入时钟频率 Tout则为定时器溢出时间 ARR为计数周期 PSC为预分频器的值…

python 图像处理ORB算法

python 图像处理ORB算法 1.ORB(Oriented FAST and Rotated BRIEF)算法是一种高效的特征检测和描述符,它在图像匹配中有广泛的应用。以下是一个简单的使用Python和OpenCV实现ORB算法进行图像匹配的示例。 首先,你需要安装必要的库…

[XDCTF 2015]filemanager

[XDCTF 2015]filemanager 我们打开题目&#xff0c;大概看了下存在文件上传功能&#xff0c;并且可以执行重命名和删除文件的操作 扫描目录发现有源码泄露 我们逐一分析 upload.php <?php require_once "common.inc.php";if ($_FILES) {$file $_FILES["…

基于RetinaFace+Jetson Nano的智能门锁系统——第一篇(烧录系统)

文章目录 设备1.首先在PC端安装VMware虚拟机和Ubuntu182.安装VMware Tools3.安装SDK Manager 设备 Jetson NanoMicro-USB - USB-A电源线HDMI线屏幕PC一台 1.首先在PC端安装VMware虚拟机和Ubuntu18 VMware下载地址&#xff1a;https://www.vmware.com/cn/products/workstatio…

SpringBoot + MyBatis-Plus 实现分页操作详解

在SpringBoot项目中&#xff0c;结合MyBatis-Plus&#xff08;简称MP&#xff09;可以非常方便地实现分页功能。MP为开发者提供了分页插件PaginationInterceptor&#xff0c;只需简单配置即可使用。 一、配置分页插件 首先&#xff0c;在SpringBoot的配置类中&#xff08;通常…

软件测试/测试开发丨Windows系统chromedriver安装与环境变量配置

一、selenium 环境配置 1、chrome 浏览器的安装与配置 目前比较常用的浏览器是 Google Chrome 浏览器&#xff0c;所以本教程以 chrome 为主&#xff0c;后面简介一下其他浏览器的环境配置。 &#xff08;1&#xff09;chrome 下载: www.google.cn/chrome/ &#xff08;2&a…

Vue3 魔法:轻松删除响应式对象的属性

&#x1f9d9;‍♂️ 诸位好&#xff0c;吾乃诸葛妙计&#xff0c;编程界之翘楚&#xff0c;代码之大师。算法如流水&#xff0c;逻辑如棋局。 &#x1f4dc; 吾之笔记&#xff0c;内含诸般技术之秘诀。吾欲以此笔记&#xff0c;传授编程之道&#xff0c;助汝解技术难题。 &…

http基本格式

在计网主要详细介绍了网络的底层,这里主要讲网络的应用层 http/https http 简介 作用 : HTTP(Hypertext Transfer Protocol)是一种用于传输超文本&#xff08;Hypertext&#xff09;数据的协议&#xff0c;通常用于在Web浏览器和Web服务器之间传递信息。 特点 : 不加密传输…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《考虑用户禀赋效应和环保意识不确定性的微电网鲁棒优化调度方法》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主的专栏栏目《论文与完整程序》 这个标题涉及到微电网系统的优化调度方法&#xff0c;特别考虑了两个重要方面&#xff1a;用户禀赋效应和环保意识的不确定性。以下是对标题中关键术语的解…

代码随想Day55 | 392.判断子序列、115.不同的子序列

392.判断子序列 第一种思路是双指针&#xff0c;详细代码如下&#xff1a; class Solution { public:bool isSubsequence(string s, string t) {//双指针if(s.empty()&&t.empty()) return true;int i0,j0;while(i<t.size()){if(s[j]t[i]) j;if(js.size()) return t…

uniapp 条件编译怎么写

在 uni-app 中&#xff0c;可以使用条件编译来实现根据不同平台编译不同代码的功能。条件编译的写法是以 #ifdef 或 #ifndef 加平台名称开头&#xff0c;以 #endif 结尾。例如&#xff1a; #ifdef APP-PLUS需条件编译的代码#endif#ifndef H5需条件编译的代码#endif#ifdef H5 ||…

Springboot整合Elasticsearch 7.X 复杂查询

这里使用Springboot 2.7.12版本&#xff0c;Elasticsearch为7.15.0。 导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency> yaml文件配置…

JSON.parseObject强制将自动转化的Intage型设置为Long型

通过Redis或Caffeine存储入json型String&#xff0c;通过JSON.parseObject自动类型转化之后&#xff0c;数值会优先转为Intage&#xff0c;如果存入的字符值大于Intage最大值&#xff0c;会自动转为Long型&#xff1b; 需求是&#xff1a;实要取出时数值类型值为Long&#xff1…