小工具知识网

当前位置: 首页 > 行业知识 > 【鸿蒙学院】鸿蒙(HarmonyOS)IDE迎来重大更新,新特性足以让你尖叫

行业知识

【鸿蒙学院】鸿蒙(HarmonyOS)IDE迎来重大更新,新特性足以让你尖叫

2026-11-16 04:16:48 来源:互联网转载

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

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

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

如果你需要这些资料,可以添加V获取:vip204888 (备注鸿蒙)

正文

不过目前并不是所有情况都支持同步,有如下情况目前还无法同步:

(1) hml布局代码里使用了数据绑定的属性

(2)xml布局代码里使用了资源引用的属性

(3)UI界面设置了动画效果

2.Java UI 数据模拟

这个功能相当有趣,其实核心理念就是见什么人说什么话。在应用发布时,执行的是真正的业务逻辑代码,数据也是真实的。但在调试时,有时用真实的数据测试太费劲,这些真实的数据可能难以获得,或获取很麻烦,或者数据量很大,反正,就是各种不爽。

我们期望在应用发布时使用真实的数据,而在调试时,使用测试数据,关键一点是,不用修改任何代码,根据调试或发布的场景自动切换。这就是Java UI数据模拟的核心作用。其实这个功能的理念与我10年前做的一个实验性项目类似,这是一个模拟NFC的系统,支持Android。在开发时,使用模拟的NFC Tag和模拟的移动设备进行测试,只需要将NFC Tag拖动到模拟设备上,就相当于真实环境中的NFC Tag与手机接触。然后将App发布到真机上时,系统会自动探测当前运行环境,如果是真机,那么就会自动切换到使用真正的NFC芯片读写NFC Tag,这一过程是完全透明,不需要修改一行代码就可以自动切换,如下所示。

对这个系统感兴趣的同学可以看这篇文章:https://unitymarvel.blog.csdn.net/article/details/17339705

鸿蒙的Java UI数据模拟也类似,这个功能是为Java UI模拟数据的。由一系列API组成,不过这些API默认并没有包含在鸿蒙SDK中,需要在模块的build.gradle中添加如下依赖:

dependencies {

… …

implementation group:‘com.huawei.deveco’,name:‘previewer-mock-core’,version:‘1.0.0.1’

}

运行程序,会先下载这个依赖。然后创建数据模拟类,代码如下:

package com.unitymarvel.harmonyos.games.sosgame.mock;

import com.huawei.asm.core.PreviewerMock;

import com.huawei.asm.core.annotation.PreviewerMockMethod;

import com.unitymarvel.harmonyos.games.sosgame.slice.MainAbilitySlice;

import ohos.aafwk.content.Intent;

public class MockClassTest extends PreviewerMock {

@PreviewerMockMethod

public void onStart(MainAbilitySlice slice, Intent intent) {

intent.setParam(“name”, “Bill”);

intent.setParam(“age”, 20);

slice.onStart(intent);

}

}

这里用onStart方法拦截了Slice的onStart方法,相当于AOP的切片。在onStart方法中调用了Slice的onStart方法。如果这里不调用,那么Slice中的onStart方法是不会调用的(会显示黑屏)。在onStart方法中设置了模拟数据(name和age)。也就是说,Java UI数据模拟,其实借鉴了AOP的部分概念。

然后在Slice的onStart方法中可以使用下面的代码使用数据。这里的代码其实并不能感知用到的数据是模拟数据,还是真实的数据。

public void onStart(Intent intent) {

super.onStart(intent);

super.setUIContent(ResourceTable.Layout_ability_main);

Text text = (Text)findComponentById(ResourceTable.Id_text_helloworld);

text.setText(“姓名:” + intent.getStringParam(“name”));

Text text1 = (Text)findComponentById(ResourceTable.Id_text_helloworld1);

text1.setText(“年龄:” + intent.getIntParam(“age”,0));

}

现在不要运行,因为运行就使用正式的数据了,现在切换到Slice类,然后打开预览器,会看到如下所示的效果。

是不是两个Text组件的内容都变了。在预览器中可以使用模拟数据检查Slice中的代码是否正确,当然,Page Ability也可以使用这个功能。

3. 新增的测试框架

创建HarmonyOS工程,会发现多了一个ohosTest,这是新增的测试框架的目录,可以利用测试框架编写测试代码,让我们可以用TDD的方式开发程序。也就是在写程序之前,先为App设定一个边界,只要App中的相关数据越雷池一步,测试框架就会检测出来。

在开发阶段,开发者可借助由Java测试框架提供的IAbilityDelegator,进行APP组件操控测试(如:启动/关闭FA、获取界面UI元素、注入UI点击事件等),及时发现UI交互问题。或使用JUnit 4语法范式,编写测试用例、调用系统接口,获得API返回值或触发业务流程,根据接口返回值或业务状态,判断业务逻辑的正确性。

下面给出一个例子,打开ExampleOhosTest.Java文件,会看到如下代码:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)

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

.(img-JheoqB2X-1713365776925)]

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

上一篇:部署LVS+Keepalived高可用群集(抢占模式,非抢占模式,延迟模式)

下一篇:腾讯服务器哪里找文件?