【华为鸿蒙系统学习】- HarmonyOS4.0之App项目开发|自学篇

🌈个人主页: Aileen_0v0
🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法
💫个人格言:
"没有罗马,那就自己创造罗马~"


目录

创建鸿蒙第一个App项目 

项目创建

工程目录区

 预览区

运行Hello World

基本工程目录 

 ws:工程级别目录

entry:模块级别目录 

app.json5

module.json5

 main_pages.json

错误总结:

Previewer预览虚拟机构建失败问题

 鸿蒙虚拟机黑屏问题


 创建鸿蒙第一个App项目 

项目创建

首先,创建一个项目。 

然后我们选择创建应用 

Ability:表示功能的抽象,根据你所需要功能进行选着性开发。

第一次开发,我们选择Empty Ability,图中表示它可与手机,平板,手表,电脑,汽车进行互联,

然后点击next进行下一步操作。

进行项目名,包名的修改,然后存储位置改为之前的D盘。

 在原路径创建一个新的文件ws去保存项目,并选择Stage开发模式(面向对象开发模式)。


 DevEco Studio 还支持低代码开发模式(不写代码,自动生成的组件可以随意拖拽)

初学者 - “应知其然·而知其所以然” ,所以最好就不勾选

然后,点击next,系统就开始构建我们的项目


工程目录区


 预览区

打开 Previewer 预览虚拟机,还可以选择其它类型的设备进行预览。

 

 根据代码我们可以知道代码和我们的组件关系是一一对应的,他们的关系都是层级式的。


运行Hello World

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

(1) 单击顶部Tools ---> Device Manager

 (2)选择鸿蒙模拟器并安装所有设备 --- 这里安装的是模拟器的管理工具

安装好以后,点击Finish 。

 (3)然后将其放到原来D盘Huawei文件下保存

(4)然后再new一个模拟器。 

 (5)选择华为手机,然后点击next

(6)点击download进行华为模拟器的下载

 安装完毕以后,点击Finish

下载完以后,显示SDK版本为: 3.1 , API :  9 

(7)确认安装英特尔的硬件加速器

 (8)等待1min,虚拟机就会自动开机,下面展示的是正在开机的页面。

下面是开机完成的页面 

 (9)点击右上角的绿色开始按钮,虚拟机就会自动运行手机上的应用程序,如下图所示。

也可以通过快捷键访问应用。


基本工程目录 

 ws:工程级别目录 

工程级别目录下

. 开头的:构建和发布有关
AppScope:
全局资源共享目录
entry:
✍🏻源代码的地方
hvigor:储存前端构建配置文件信息基于TS的前端构建和任务编排
oh_modules:开放鸿蒙,
存放所有项目用的第三方包
.gitignore:代码版本管理文件夹,用于代码提交或代码忽略除外的文件
build-profile.json5:
配置或修改模块名称
.ts:全称是test script,是执行编译和构建任务的一个脚本
有.bat的文件hvigorw.bat:Windows操作系统底下执行的脚本
没有.bat的文件bvigorw:Linux或Unix操作系统中做ohpm的编译管理
.properties:配置文件的属性
oh-package.json5:包含依赖的配置,项目配置,以及(第三方包)依赖关系
oh-package-lock.json5:树型依赖数,包含项目配置信息

树形依赖数一种树形结构,用于表示依赖关系。在树形依赖数中,每个节点代表一个对象或实体节点之间的连接表示对象之间的依赖关系。树形依赖数通常用于描述复杂的层次结构或组织关系,例如文件系统、组织结构等。

在给定的引用中,有两个类用于表示树形依赖数。

TreeVo类表示树形依赖数的节点,包含节点的id、name和子节点列表。

TreeNode类表示树形依赖数的节点,包含节点的id、parentId、子节点列表和是否有子节点的标志。

以下是一个示例,演示如何使用TreeVo和TreeNode类构建树形依赖数:

// 创建树形依赖数的节点
TreeVo root = new TreeVo(1, "Root");
TreeVo child1 = new TreeVo(2, "Child 1");
TreeVo child2 = new TreeVo(3, "Child 2");
TreeVo grandchild1 = new TreeVo(4, "Grandchild 1");// 构建树形依赖数的结构
root.setNodeList(Arrays.asList(child1, child2));
child1.setNodeList(Collections.singletonList(grandchild1));// 打印树形依赖数的结构
printTree(root, 0);// 递归打印树形依赖数的结构
private static void printTree(TreeVo node, int level) {StringBuilder indent = new StringBuilder();for (int i = 0; i < level; i++) {indent.append("  ");}System.out.println(indent.toString() + node.getName());if (node.getNodeList() != null) {for (TreeVo child : node.getNodeList()) {printTree(child, level + 1);}}
}

运行结果:

RootChild 1Grandchild 1Child 2

entry:模块级别目录 

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是应用的全局的配置文件,用于存放应用公共的配置信息

其中配置信息如下bundleNam:包名。

vendor:应用程序供应商。versionCode:用于区分应用版本。

versionName:版本号。


module.json5

entry>src>main>module.json5是模块的配置文件,包含当前模块的配置信息。

其中module:对应模块的配置信息,一个模块对应一个打包后的hap包,hap包全称是HarmonyOS Ability Package,其中包含了ability、第三方库、资源和配置文件。

具体属性及其描述可以参照下表1。

表1module.json5默认配置属性及描述

对于abilities中每一个ability的属性项,其描述信息如下表2。

表2 abilities中对象的默认配置属性及描述


 main_pages.json

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


📝错误总结:

Previewer预览虚拟机构建失败问题

preview log 显示: 

Build task failed. Open the Run window to view details.

具体解决方法是:

打开设置 ---> 构建,执行,部署 ---> Hvigor ---> 关掉最下面构建守护进程模式

↓虚拟机正常界面 


 鸿蒙虚拟机黑屏问题

虚拟机黑屏问题可能由多种因素引起,包括资源限制、应用程序冲突、兼容性问题和软件错误。

我遇到的的是内存分配不足问题解决这种问题的方法是给虚拟机分配足够的内存,如何知道虚拟机需要多少内存,可以通过官网进行查找,然后要注意分配空间电脑内存是否足以提供。 

 

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

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

相关文章

【Amazon 实验①】Amazon WAF功能增强之实验环境准备

文章目录 1. 实验介绍2. 实验环境准备 1. 实验介绍 在真实的网络空间中&#xff0c;攻击者会使用大量广泛分布的僵尸网络、肉机等发起对目标的攻击。 其来源分布一般比较分散&#xff0c;因此难以简单防范。 本实验联合使用有多种AWS服务&#xff1a;Cloudfront、 Lambdaedge…

『番外篇五』SwiftUI 进阶之如何动态获取任意视图的 tag 和 id 值

概览 在某些场景下,我们需要用代码动态去探查 SwiftUI 视图的信息。比如任意视图的 id 或 tag 值: 如上图所示:我们通过动态探查技术在运行时将 SwiftUI 特定视图的 tag 和 id 值显示在了屏幕上。 这是如何做到的呢? 在本篇博文,您将学到如下内容: 概览1. “如意如意,…

Linux基本内容学习

Linux 命令 文件命令 命令释义语法格式lslist&#xff0c;用于显示目录中文件及其属性信息ls [参数名] [文件名]cdchange directory&#xff0c;用于更改当前所处的工作目录&#xff0c;路径可以是绝对路径&#xff0c;也可以是相对路径&#xff0c;若省略不写则会跳转至当前…

测试工具Jmeter:界面介绍、核心选项说明、核心选项用途

本文章主要介绍Jmeter的界面布局&#xff0c;以及各个选项的功能和它们的用途。 JMeter基本原理是建立一个线程池&#xff0c;多线程运行取样器产生大量负载&#xff0c;在运行过程中通过断言来验证结果的正确性&#xff0c;通过监听器来记录测试结果。 1. Jmeter主界面 当我…

Unresolved plugin: ‘org.apache.maven.plugins‘解决报错

新建springboot项目报Unresolved plugin: ‘org.apache.maven.plugins:maven-surefire-plugin:3.1.2’ 缺什么插件 引入什么插件的依赖就行 <dependency><groupId>org.apache.maven.plugins</groupId><artifactId>maven-install-plugin</artifact…

docker数据卷数据卷容器

前言 今天调休在家&#xff0c;随便玩玩&#xff0c;简单做下学习记录 1. 数据卷特点 数据卷在容器启动时初始化&#xff0c;如果容器使用的镜像在挂载点包含了数据&#xff0c;这些数据会被拷贝到新初始化的数据卷中数据卷可以在容器之间共享和重用可以对数据卷里的内容直接…

重学设计模式-Iterator(迭代器模式)

Iterator迭代器模式 介绍&#xff1a; 迭代器模式是一种行为型设计模式&#xff0c;它允许你在不暴露集合底层表示&#xff08;并不知道集合底层使用何种方式对数据尽心存储&#xff09;的情况下遍历集合中的元素。 这种模式提供了一种方法&#xff0c;可以顺序访问一个聚合…

Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot

Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot 起因&#xff1a;我接手tomcat-springmvc-hibernate项目&#xff0c;使用tomcat时问题不大。自从信创开始&#xff0c;部分市场使用国产中间件&#xff0c;例如第一次听说的宝兰德、东方通&#xff0c;还…

让AIGC成为你的智能外脑,助力你的工作和生活

人工智能成为智能外脑 在当前的科技浪潮中&#xff0c;人工智能技术正在以前所未有的速度改变着我们的生活和工作方式。其中&#xff0c;AIGC技术以其强大的潜力和广泛的应用前景&#xff0c;正在引领着这场革命。 AIGC技术是一种基于人工智能的生成式技术&#xff0c;它可以通…

光模块市场分析与发展趋势预测

光模块是光通信领域的重要组成部分&#xff0c;随着数字经济&#xff0c;大数据&#xff0c;云计算&#xff0c;人工智能等行业的兴起&#xff0c;光模块市场经历了快速发展&#xff0c;逐渐在数据中心、无线回传、电信传输等应用场景中得到广泛应用。本文将基于当前光模块全球…

[JS设计模式]Flyweight Pattern

Flyweight pattern 享元模式是一种结构化的设计模式&#xff0c;主要用于产生大量类似对象而内存又有限的场景。享元模式能节省内存。 假设一个国际化特大城市SZ&#xff1b;它有5个区&#xff0c;分别为nanshan、futian、luohu、baoan、longgang&#xff1b;每个区都有多个图…

STM32F4的DHT11初始化与实例分析

STM32—— DHT11 本文主要涉及STM32F4 的DHT11的使用以及相关时序的介绍&#xff0c;最后有工程下载地址。 文章目录 STM32—— DHT11一、 DHT11的介绍1.1 DHT11的经典电路 二、DHT11的通信2.1 DHT11的传输数据格式2.2 DHT11 通信分步解析 三、 DHT11 代码3.1 引脚图3.2 电路图…

设计师都在用的5个设计灵感网站,赶紧收藏~

设计没灵感&#xff0c;就上这5个网站&#xff0c;绝对能打开新世界大门&#xff0c;全世界设计师的分享、互交站&#xff0c;最优秀的设计作品都在这&#xff0c;赶紧收藏好了~ pinterest​&#xff08;梯子&#xff09; https://www.pinterest.es/ Pinterest是以瀑布流的方式…

基于Java+SpringBoot+Mybaties-plus+Vue+ElementUI+Vant 电影院订票管理系统 的设计与实现

一.项目介绍 基于SpringBootVue 电影院订票管理系统 分为前端和后端。 前端&#xff08;用户&#xff09;&#xff1a; 登录后支持查看首页、电影、影院和我的信息 支持查看正在热映和即将上映的电影信息 支持购票&#xff08;需选择影院座位&#xff09;、看过&#xff08;评论…

千帆 AppBuilder 初体验,不仅解决解决了我筛选简历的痛苦,更是让提效10倍!

文章目录 &#x1f31f; 前言&#x1f31f; 什么是百度智能云千帆 AppBuilder&#x1f31f; 百度智能云千帆 AppBuilder 初体验&#x1f31f; 利用千帆AppBuilder搭建简历小助手&#x1f31f; 让人眼前一亮的神兵利器 - 超级助理 &#x1f31f; 前言 前两天朋友 三掌柜 去北京…

3. BlazorSignalRApp 结合使用 ASP.NET Core SignalR 和 Blazor

参考&#xff1a;https://learn.microsoft.com/zh-cn/aspnet/core/blazor/tutorials/signalr-blazor?viewaspnetcore-8.0&tabsvisual-studio 1.创建新项目 BlazorSignalRApp 2.添加项目依赖项 依赖项&#xff1a;Microsoft.AspNetCore.SignalR.Client 方式1 管理解决方案…

[笔记]ByteBuffer垃圾回收

参考&#xff1a;https://blog.csdn.net/lom9357bye/article/details/133702169 public static void main(String[] args) throws Throwable {List<Object> list new ArrayList<>();Thread thread new Thread(() -> {ByteBuffer byteBuffer ByteBuffer.alloc…

『 C++ 』二叉树进阶OJ题

文章目录 根据二叉树创建字符串 &#x1f996;&#x1f969; 题目描述&#x1f969; 解题思路&#x1f969; 代码 二叉树的层序遍历(分层遍历) &#x1f996;&#x1f969; 题目描述&#x1f969; 解题思路&#x1f969; 代码 二叉树的层序遍历(分层遍历)Ⅱ &#x1f996;&…

llvm后端之DAG设计

llvm后端之DAG设计 引言1 核心类设计2 类型系统2.1 MVT::SimpleValueType2.2 MVT2.3 EVT 3 节点类型 引言 llvm后端将中端的IR转为有向无环图&#xff0c;即DAG。如下图&#xff1a; 图中黑色箭头为数据依赖&#xff1b;蓝色线和红色线为控制依赖。蓝色表示指令序列化时两个节…

【Unity URP渲染管线下GUI圆形扇形_多功能线框Shader_案例分享】

【Unity URP渲染管线下GUI圆形&扇形_多功能线框Shader_案例分享】 上图看效果