自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数HarmonyOS鸿蒙开发工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年HarmonyOS鸿蒙开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img

img
img
htt

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上HarmonyOS鸿蒙开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

创建鸿蒙第一个App项目

项目创建

工程目录区

预览区

运行Hello World

基本工程目录

ws:工程级别目录

entry:模块级别目录

app.json5

module.json5

main_pages.json

📝错误总结:

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

鸿蒙虚拟机黑屏问题


fb38de373bb44a09a7a440ebc58eb423.gif#pic_center

创建鸿蒙第一个App项目

项目创建

首先,创建一个项目。

b6438c04114541ea8f3ad2615ebdcd41.png

然后我们选择创建应用

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

2c2282e9fc3149499d9bf08b4ce5ee04.png

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

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

891f9b6dbefc49b98eeb3f4872c55dd9.png

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

e2bd06c2443d41df81dce4778133cfb5.png

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

913ba3b6324e4ce4a9a85bcd7dbb8b13.png


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

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

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


工程目录区

cda0cab930014896b44c32c5d3d35bca.png

327dc60580be4aa48afdaa037b61299b.png


预览区

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

ecd41a9bb36047dbb24e0b32ed820978.png8cddcf77ae594fa298b077a6d7a048c6.png

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


运行Hello World

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

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

4efadf1e814c451b8638b99bb5104ddb.png

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

711b6a7138bf4fee910ee5671ddf9b9e.png

安装好以后,点击Finish 。

7599be30e3c845db9b1e50c2291360a5.png(3)然后****将其放到原来D盘Huawei文件下保存8b4222e24d6043e78053b7e6979c4e4c.png

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

1cdb57cad1ad44ea906c425181a54d01.png**(5)**选择华为手机,然后点击next

1549b1e86a5845f2bfad6b28def873a3.png

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

6fa3a985c50641c29b1bdc112a88c666.png安装完毕以后,点击Finishf39b274d663846c1a6c3c4a7c56db577.png

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

1a599e32d8ab4ab69a5754b5479392e8.png

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

a087feb7bea94564bed79414cac59a76.png

17b3281e59804159a4bda3b3ad55d4b2.png

b7d814a403624604b0a2820641aeafd5.png

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

6a625d66dd7e4206b978bbac4c1910b6.png

下面是开机完成的页面

1fee6c8d04124e37957b4f76dc43aa59.png

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

9c681ad8e51e46c490b11361c94ee138.png也可以通过快捷键访问应用。75d1015c93744326b298ddc04215b265.gif


基本工程目录

ws:工程级别目录

086233b4dc294951b07fdd1f8f07bd55.png

工程级别目录下

. 开头的:构建和发布有关
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:**树型依赖数,包含项目配置信息

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

96a713f493b0461dbe7720a123bee51f.png

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

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);
        }
    }
}

运行结果:

< level; i++) {

    indent.append("  ");
}
System.out.println(indent.toString() + node.getName());
if (node.getNodeList() != null) {
    for (TreeVo child : node.getNodeList()) {
        printTree(child, level + 1);
    }
}

}


**运行结果:**



Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐