2024年8月HarmonyOS鸿蒙应用开发者高级认证全新题库

1.以下哪些赋值语句在ArkTS中是合法(B)。

A.a1

B.a2

C.a4

D.a3

2.下面关于方舟字节码格式PREF_IMM16_V8_V8描述正确的是(D)

A.16位前缀操作码,16位立即数,8位寄存器

B.8位操作码,8位立即数,16位id,8位寄存器

C.8位操作码,8位立即数,2个8位寄存器

D.16位前缀操作码,16位立即数,2个8位寄存器

3.ArkTS支持以下哪个函数。(C)

A.Object.hasOwnProperty();

B.Object.getOwnPropertyDescriptor();

C.Object.values();

D.Object.getOwnPropertyDescriptors();

4.ArkTS支持以下哪个函数?(D)

A.Object.getOwnPropertyDescriptors(D);

B.Object.getOwnPropertyDescriptor();

C.Object.hasOwnProperty();

D.Object.values();

5.以下关于Taskpool和Worker的描述正确的是(B)

A.开发者需要自行管理taskpool的数量及生命周期

B.TaskPool和Worker的任务执行时长上限都是无限制

C.Worker自行管理生命周期,开发者无需关心任务负载高低

D.TaskPool支持任务延时执行

6.从桌面冷启动如下应用代码,点击Change按钮5次,整个过程中,代码中的2条log依次出现的次数是:(C)

A.2,4

B.6,0

C.1,0

D.1,5

7.使用promptAction.showToast如何设置显示在其他应用之上?(C)

A.ToastShowMode.SYSTEM_TOP_MOST

B.ToastShowMode.DEFAULT

C.ToastShowMode.TOP_MOAST

D.无需配置,默认显示在其他应用之上

8.已知下列代码PageOne页面为navigation中的某一子页面,依次点击PageOne页面中toPageTwo按钮,PageTwo页面中toPageOne按钮,此时获取当前页面的路由栈数量为多少(C)

A.2

B.4

C.3

D.1

9.下面哪种转场效果在入场动画时,表现为从透明度为0、相对于组件正常显示位置x方向平移100vp的状态,到默认的透明度为1、相对于组件不平移的状态,且透明度动画和平移动画的动画时长均为2000ms(D)

A.TransitionEffect.translate({x:100}).combine(TransitionEffect.OPACITY.animation({duration: 2000}))

B.TransitionEffect.OPACITY.combine(TransitionEffect.translate({x:100}).animation({duration: 2000}))

C.TransitionEffect.asymmetric(TransitionEffect.OPACITY.animation({duration:2000}), TransitionEffect.translate({x:100}).animation({duration: 2000}))

D.TransitionEffect.OPACITY.animation({duration: 2000}).combine(TransitionEffect.translate({x:100}))

10.如果想让outer button响应事件,hitTestBehavior该怎么配(C)

A.HitTestMode.Default

B.HitTestMode.Block

C.HitTestMode.Transparent

D.HitTestMode.None

11.以下哪份代码可以实现下图Grid布局(B)

A.通过设置不同GridItem的宽度

B.通过设置GridItem的columnStart和columnEnd

C.通过GridLayoutOptions

12.从桌面冷启动如下应用,点击Change按钮5次,整个过程中,代码中的2条log依次出现的次数,最初和最后画面上显示的【num = ?】的数字是(C)

A.1,5,1,6

B.0,6,1,6

C.2,4,1,2

D.2,4,1,6

13.依次点击A、B、C、D四个按钮,其中不会触发UI刷新的是:(B)

A.B

B.C

C.A

D.D

14.在使用DevEco Studio的Profiler进行HarmonyOS应用性能优化的流程中,以下哪个步骤最恰当地描述了开发者利用Profiler工具进行性能问题识别、定位、优化及验证的完整过程(B)

A.在发现应用性能不佳时,直接查看代码逻辑,凭经验修改后,利用Profiler的“Realtime Monitor”确认资源消耗是否降低

B.利用“Realtime Monitor”初步识别性能瓶颈,创建深度分析任务定位根因,根据分析结果优化代码,再用“Realtime Monitor”验证优化效果

C.仅通过创建深度分析任务,利用perf数据详细分析性能瓶颈,修改代码后,不需再进行验证直接发布应用

D.首先使用“Realtime Monitor”实时监控,观察应用资源消耗,一旦发现CPU或内存异常,直接修改代码并重新编译

15.张工正在使用DevEco Studio进行一个复杂项目的开发工作,项目中包含了成千上万行代码且涉及众多模块。在重构代码的过程中,他意识到需要对一个核心类名进行更改,考虑到这个类在整个项目中被广泛引用,手动修改不仅耗时且容易出错。 基于DevEco Studio提供的代码编辑功能,以下哪个描述最准确地概述了张工如何高效且安全地完成对类名的更改,同时确保整个项目中所有相关引用同步更新?(A)

A.张工选中需要更名的类名,使用快捷键Shift+F6或右键菜单Refactor -> Rename,在弹出框中输入新名称并选择替换范围后,点击“Refactor”完成更名操作,确保所有相关引用自动更新。

B.张工只需简单选中需要更名的类名,按下Delete键删除后直接输入新名称,DevEco Studio会自动识别并更新所有引用。

C.张工在代码编辑器中右键点击该类名,选择“Find Usage”,手动浏览所有引用位置并逐一修改为新名称。

D.张工需打开项目搜索功能,输入旧类名找到所有匹配项,逐一进行替换,完成更名操作。

16.开发者小林正在使用DevEco Studio开发一款HarmonyOS应用,并在真机上进行调试。他在运行应用的过程中突然发现一处UI布局需要微调,希望在不中断当前应用运行的情况下看到调整效果,基于DevEco Studio提供的Hot Reload(热重载)能力,以下哪一种做法能让小林最有效地实现他的需求 (A)

A.在不关闭应用的情况下,直接修改代码并保存,借助Hot Reload功能在真机上实时查看布局调整的效果

B.使用模拟器替代真机进行调试,因为Hot Reload仅在模拟器上支持代码改动的即时生效

C.立即停止应用,修改代码后重新编译并部署到真机上

D.继续运行应用,手动重启应用后检查布局是否符合预期

17.在一个包含多个模块(如entry、feature、har、hsp等)的大型HarmonyOS应用项目中,如果要对某个静态共享模块构建出静态构建包产物,如何通过DevEco Studio进行构建(B)

A.选中hap模块,点击通过菜单栏make module ‘hap’

B.选中har模块,点击build菜单栏make module ‘har’

C.选中hsp模块,点击通过菜单栏make module ‘hsp’

D.选中har模块,点击build菜单栏build hap(s)

18.项目中涉及多个类的继承与重写。为了快速实现子类对父类方法的重写,小华想利用DevEco Studio提供的便捷功能来提高开发效率。他了解到,通过一个特定的操作流程,可以直接依据父类的模板生成子类中需要重写的方法代码,而无需手动编写完整方法体,在DevEco Studio中,如何正确使用Override Methods功能来快速生成子类需要重写的方法代码(A)

A.将光标放置于任何代码行,按下Ctrl+B,然后在弹出菜单中选择Override Methods,之后勾选需要重写的方法并确认。

B.将光标定位到子类的定义处,按下Ctrl+O(或右键单击选择Generate... > Override Methods),在弹出的对话框中选择要重写的方法,点击OK完成生成。

C.在项目结构视图中找到目标子类,双击打开后直接在代码编辑区输入重写方法的签名,DevEco Studio将自动完成剩余代码。

D.通过菜单栏File > Settings,配置Override Methods快捷方式,之后在代码中仅需选中父类方法名,即可自动在子类中生成重写代码。

19.DevEco Studio提供HarmonyOS应用/服务的UI预览界面与源代码文件间的双向预览功能,支持ets文件与预览器界面的双向预览。关于双向预览,下列选项说法错误的是?(D)

A.选中组件树中的组件,则对应的代码块和UI界面也会高亮显示。

B.选中布局文件中的代码块,则在UI界面会高亮显示,组件树上的组件节点也会呈现被选中的状态。

C.选中预览器UI界面中的组件,则组件树上对应的组件将被选中,同时代码编辑器中的布局文件中对应的代码块高亮显示。

D.双向预览不支持通过组件的属性面板实时修改属性或样式。

20.在一个包含多个模块(如entry、feature、service、library等)的大型HarmonyOS应用项目中,如果某个模块feature对另外一个公共库模块library有依赖,如何通过DevEco Studio正确配置项目依赖关系(D)

A.无需配置,直接在代码中编写import xxx from ‘library’

B.在library的oh-package.json5文件的dependencies字段中配置feature的依赖

C.在feature的build-profile.json5文件的dependencies字段中配置library的依赖

D.在feature的oh-package.json5文件的dependencies字段中配置library的依赖

21.张工在使用DevEco Studio开发HarmonyOS应用时,遇到了代码编译警告和错误。为了提高开发效率,哪一项正确描述了张工如何利用DevEco Studio的Quick Fix功能来有效管理和修复代码中的问题?(C)

A.张工只需在代码编辑界面按下F1键,DevEco Studio会自动识别当前光标所在行的错误并直接修复。

B.张工应该首先使用Ctrl + Shift + F快捷键全局搜索问题,然后手动在搜索结果中找出代码警告和错误的原因及位置。

C.张工通过双击Shift键打开搜索框,输入"problems"打开问题工具面板,双击具体告警条目可直接跳转到问题代码行。接着,将光标置于告警位置,利用弹出的悬浮窗选择合适的修复建议或点击“More actions”以查看更多修复选项。

D.张工在代码编辑界面看到红色波浪线标记的错误时,直接右键点击错误代码,选择“Delete Line”以移除错误代码行,从而“修复”问题。

22.HAR(Harmony Archive)是HarmonyOS提供的共享包,以下关于HAR的描述错误的是(B)

A.HAR不支持引用AppScope目录中的资源。在编译构建时,AppScope中的内容不会打包到HAR中,因此会导致HAR资源引用失败。

B.HAR不支持使用page页面。

C.HAR可以作为二方库和三方库提供给其他应用使用,如果需要对代码资产进行保护时,建议开启混淆能力。

D.HAR不支持在设备上单独安装/运行,只能作为应用模块的依赖项被引用。

23.want参数的entities匹配规则错误的是(A)

A.调用方传入的want参数的entities为空,待匹配应用组件的skills配置中的entities不为空,则entities匹配失败。

B.调用方传入的want参数的entities不为空,待匹配应用组件的skills配置中的entities为空,则entities匹配失败。

C.调用方传入的want参数的entities为空,待匹配应用组件的skills配置中的entities为空,则entities匹配成功。

D.调用方传入的want参数的entities不为空,待匹配应用组件的skills配置中的entities不为空且包含调用方传入的want参数的entities,则entities匹配成功。

24.HarmonyOS提供了多种包结构,每种包编译后的产物都不同,下面说法错误的是(A)

A.hsp包编译后的产物是.hsp文件。

B.har包编译后的产物是.har文件。

C.hap包编译后的产物是.hap文件。

D.app包编译后的产物是.app文件。

25.在组件中,经常需要使用字符串、图片等资源。HSP中的组件需要使用资源时,一般将其所用资源放在HSP包内,而非放在HSP的使用方处,以符合高内聚低耦合的原则。下面访问HSP资源错误的是(C)

A.跨包访问HSP内资源时,推荐实现一个资源管理类,以封装对外导出的资源。

将需要对外提供的资源封装为一个资源管理类:

B.通过$r访问HSP中的资源。 Image($r('app.media.example')) .id('example') .borderRadius('48px')

C.使用相对路径的方式,访问HSP中的资源。 Image("../../resources/base/media/example.png") .id('example') .borderRadius('48px'

26.某个应用开发了一个UIAbilityA,其启动模式是specified,并且对应的AbilityStage的实现如下:(A)

A.3个

B.2个

C.1个

D.4个

27.开发者开发了一个应用,该应用只有一个hap包,其module.json5中abilities的配置如下

所示,包含1个UIAbility(无Web组件)、1个FormExtensionAbility组件、1个WorkSchedulerExtensionAbility组件,那么该应用在运行过程中,最多会存在几个应用进程:(A)

A.3个

B.4个

C.1个

D.2个

28.通过aa工具拉起com.example.test的EntryAbility,并传参给EntryAbility,具体参数是number类型的[key1, 1] [key2,2] 和string类型的[key3, testString] [key4,''], 那边下面那个aa 命令是正确的:(B)

A.aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --psn key4 ''

B.aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --psn key4

C.aa start -b com.example.test -a EntryAbility --pi key1 1 key2 2 --ps key3 testString --psn key4

D.aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --ps key4

29.一个应用的一个UIAblity,其exported字段配置为false,以下哪个场景可以拉起这个UIAbility。(D)

A.caller应用在后台,有START_INVISIBLE_ABILITY权限;

B.caller应用在后台,有START_ABILITY_FROM_BACKGROUND权限;

C.caller应用在后台,申请了长时任务,有START_ABILITY_FROM_BACKGROUND权限;

D.caller应用在后台,申请了长时任务,有START_INVISIBLE_ABILITY权限;

30.hiAppEvent提供的Watcher接口,(B)属性不配置,会导致编译报错,产生"ArkTS Compiler Error".

A.onReceive

B.name

C.onTrigger

D.triggerCondition

31.作为应用开发者,你使用hiAppEvent订阅了崩溃事件。应用崩溃后,从onReceive接口返回的AppEventInfo中(A)属性可以获取崩溃调用栈信息。

A.params

B.name

C.eventType

D.domain

32.我们需要避免在逐帧调用的接口中执行耗时操作,下面哪个选项不属于上述的接口?(B)

A.onTouch

B.aboutToReuse

C.onScroll

D.onAreaChange

33.当使用状态变量进行ArkUI组件间数据通信的时候,如果两个组件间没有直接的嵌套关系(非父子和祖孙关系组件),但是他们又属于同一页面,最佳的装饰器应该选用哪个?(B)

A.AppStorage

B.LocalStorage

C.@Provide+@Consume

D.@State+@Link

34.为了提高性能,所以List组件支持懒加载,可以通过配置cachedCount属性设置缓存列表项的数量。当我们不设置List的属性cachedCount时,该属性的默认值是?(A)

A.1

B.3

C.0

D.2

35.关于代码门禁理解正确的是:(C)

A.代码门禁是一项代码质量保障措施。目的是要求开发人员提交的代码必须满足一些要求才能合入代码仓库。门禁必须强制要求包括编译通过、单元测试覆盖率达标、代码静态检查无告警、全量功能测试用例、DFX专项测试都通过。

B.门禁级检查的范围和版本级检查的范围保持一致,尽可能多的在MR门禁阶段就拦截防护住问题,保障问题可以及时清理掉。

C.代码门禁则是在代码合并之前就验证代码来保护主干分支的完整性。通过这种方式,可以保护主分支代码避免因合码导致的构建中断,以确保 master 分支代码始终是可部署的,并且不会因明显的错误而影响到你正在并行开发的同事工作。

D.标准 CI 构建是在代码合并后检查已提交代码的功能完整性,这种方法会导致代码合并到master后编译失败导致没有可用版本部署。通过提高滚动构建的频度就可以代替代码门禁,保障代码主干及时发现并解决问题。

36.某业务团队的架构师发现某个特性用的频率比较少,但是这个特性占用空间资源还是比较大的。为了减少首包下载体积,准备将该特性解耦出来,并对外提供API方便主模块调用。以下说法正确的是(D)

A.将该特性做成hap包,通过Ability组件暴露出来给主app使用。

B.将该特性做成动态加载的har包,暴露接口给主模块使用。

C.将该特性做成H5模块,通过web组件加载远程资源使用。

D.将该特性做成按需加载的hsp包,暴露接口给主模块使用。

37.某App有A、B、C、D四个团队分别负责ModuleA、ModuleB、ModuleC和ModuleD四个业务模块,随着业务的发展,ModuleA需要跳转到ModuleB、ModuleC的页面,ModuleB需要跳转到ModuleC、ModuleD的界面,ModuleC需要跳转到ModuleA的界面,ModuleD需要跳转到ModuleB和ModuleC的界面。由于复杂的依赖关系,导致一旦有变化就需要知会各个团队,所以该团队的架构师想要解耦各个业务模块,以下哪些做法是不推荐的(C)

A.可以采用Navigation作为页面导航根容器,将其放在entry中,其他Module的页面作为Navigation的子页面。

B.在RouterModule中采用路由表方式解耦各个业务模块。

C.采用静态import方式引入对应跳转的页面。

D.采用RouterModule作为中介者并用动态import解耦各个业务模块。

38.在moduleA(HAP类型)中有一个图片名为image.png,在moduleB(HAR类型)也存在一个图片名为image.png,而moduleA依赖于moduleB,那么在moduleA的编译产物hap包中,image.png存在情况是:(B)

A.两者都存在

B.仅存在moduleA的image.png

C.仅存在moduleB的image.png

D.两者都不存在

39.某App依赖了3个ohpm库,这3个库占用的体积都比较大。在App的技术架构中,有多个hap和多个hsp均依赖这3个库,为了减少app的首包大小,以下哪些做法是无效的?(D)

A.将3个ohpm库封装成1个hsp,并对外提供必要的接口。

B.将某些特性做成按需加载模块,若这3个ohpm仅在按需加载模块里面使用,则将其打包在按需加载模块中。

C.将3个ohpm库分别封装成3个hsp,并对外提供必要的接口。

D.将这3个ohpm库封装到har包中,并对外提供必要的接口。

40.关于短时任务开发使用的接口是(D)

A.使用startBackgroundRunning申请任务,使用stopBackgroundRunning取消任务

B.使用startWork申请任务,使用stopWork取消任务,使用getWorkStatus获取任务状态

C.使用publishReminder发布一个提醒类通知,使用cancelReminder取消一个指定的提醒类通知

D.使用requestSuspendDelay申请任务,使用getRemainingDelayTime获取任务剩余时间

多选题

41.某业务团队发现用户对他们App的某个特性使用率并不高,为了节省用户首次下载安装包的体积,考虑将该特性做成按需加载,那么推荐该特性使用的工程模块类型是?BD

A.har

B.hap

C.app

D.hsp

42.哪些是持续集成最佳实践?ABDEG

A.代码审查:在集成前进行代码审查,及时发现潜在问题。

B.快速反馈机制:让开发人员能迅速得知集成结果和测试状态。

C.构建相同代码的 Pipeline 运行多次,得到结果不同。比如,基于同一代码基线,一条 Pipeline 构建了 5 次,只要最后一次通过即可。

D.全面的测试套件:包括单元测试、集成测试、功能测试等,以提高代码质量。

E.自动化构建:确保构建过程是完全自动化的,减少人为错误。

F.通常项目上会有一个专职 Ops,在项目可以发布的时候手动触发部署流程,或者需要传递很多参数,让 Pipeline 运行起来。

G.频繁提交代码:鼓励开发人员经常提交小的代码更改,以便更快地发现问题。

43.用户购买商品后,你需要及时发放相关权益。但实际应用场景中,若出现异常将导致应用无法知道用户实际是否支付成功,从而无法及时发放权益,即出现掉单情况。为了确保权益发放,你需要在以下哪些场景检查用户是否存在已购未发货的商品:ABD

A.createPurchase请求返回1001860001-内部错误时

B.应用启动时

C.finishPurchase请求返回1001860052-由于未拥有该商品,发货失败时

D.createPurchase请求返回1001860051-由于已经拥有该商品,购买失败时

44.以下数据类型中,哪些是Sendable数据。ABC

import { lang } from '@kit.ArkTS';

class C {}

interface I extends lang.ISendable {}

A.number

B.interface I

C.string

D.class C

45.以下代码片段哪几处违反了ArkTS语法规范。ABD

A.foo(1, 2, 3);

B.foo(1, 2, 3, 4);

C.foo(1, 2);

D.foo();

46.下面关于ArkTS中import用法,正确的是ABCD

A.import defaultExport from "ets file name"

B.import * as name from "ets file name"

C.import { export1 as alias1 } from "ets file name";

D.import { export1 } from "ets file name";

47.下面关于ArkTS中export用法,正确的是ABCD

A.export * from "ets file name"

B.export { export1 } from "ets file name";

C.export * as name from "ets file name"

D.export { export1 as alias1 } from "ets file name";

48.ArkTS中不能使用以下哪些类型。AB

A.any

B.unknown

C.tuple type

D.union type

49.下面关于方舟字节码文件格式描述正确的是AB

A.方舟字节码文件是ArkTS/TS/JS编译后的二进制产物

B.方舟字节码文件中数据类型uint16_t表示16-bit无符号整数,采用小端字节序

C.方舟字节码文件中数据类型uint32_t表示32-bit无符号整数,采用大端字节序

D.方舟字节码文件中不包含字节码文件内容的adler32校验和

50.下面代码符合ArkTS编程规范的是BC

A.if(isJedi) {fight();}

B.const arr = [1, 2, 3];

C.function fight(): void {console.log('Swooosh!');}

D.if (flag) {//...}else {//...}

51.ArkTS是鸿蒙生态的应用开发语言。下列说法正确的是ABC

A.ArkTS提供了声明式UI范式、状态管理支持等相应的能力,让开发者可以以更简洁、更自然的方式开发应用。

B.ArkTS在保持TypeScript(简称TS)基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开发期能检测更多错误,提升代码健壮性,并实现更好的运行性能。

C.针对JavaScript(简称JS)/TS并发能力支持有限的问题,ArkTS对并发编程API和能力进行了增强。

D.TS/JS代码支持import ArkTS代码。

52.依次点击A、B、C、D四个按钮,其中不会触发UI刷新的是:BC

A.D

B.B

C.A

D.C

53.如下ABC 3处手势,有机会执行的是哪几处?CD

A.B

B.NA

C.C

D.A

54.

以下哪些是可以在Navigation中使用pushPathByName接口传递的params的参数类型ABC

A.arrayBuffer

B.record<string,string>

C.string

D.map<string,string>

55.List组件onScrollIndex事件触发时机是CD

A.List组件列表滚动时每帧触发

B.List组件滚动停止时触发

C.List组件首次加载完成时触发

D.List组件显示区域内第一个子组件或最后一个子组件或中间位置子组件索引值变化时触发

56.在开发过程中,我们可以将每个功能模块作为一个独立的Module进行开发。关于Module,下列选项说法正确的是?BCD

A.entry类型的Module:应用的主模块,包含应用的入口界面、入口图标和主功能特性,编译后生成entry类型的HAP。每一个应用分发到同一类型的设备上的应用程序包,可以包含一个或多个entry类型的HAP。

B.feature类型的Module:应用的动态特性模块,编译后生成feature类型的HAP。一个应用中可以包含一个或多个feature类型的HAP,也可以不包含。

C.HAR类型的Module:静态共享库。HAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝。

D.Shared类型的Module:动态共享库。HSP中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。

57.在基于Stage模型开发的应用项目代码下,每个模块都存在一个module.json5配置文件,用于配置模块的基本信息,以下module.json5配置文件正确的是ABD

A.{"module": {

"name": "bName",

"type": "shared",

"deviceTypes": ["default","tablet"],"deliveryWithInstall": true,

"pages": "$profile:main_pages"}}

B.{"module": {

"name": "application",

"type": "feature",

"description": "$string:module_desc","mainElement": "ApplicationAbility",

"deviceTypes": ["default","tablet"],"deliveryWithInstall": true,"installationFree": false,

"pages": "$profile:main_pages","abilities": [{"name": "ApplicationAbility","srcEntry": "./ets/applicationability/ApplicationAbility.ets","description": "$string:ApplicationAbility_desc","icon": "$media:icon","label": "$string:ApplicationAbility_label","startWindowIcon": "$media:startIcon","startWindowBackground": "$color:start_window_background","exported": true}]}}

C.{"module": {

"name": "cName",

"type": "hsp",

"description": "$string:desc",

"deviceTypes": ["default","tablet"],"deliveryWithInstall": true,

"pages": "$profile:main_pages"}}

D.{ "module": {

"name": "aName",

"type": "har",

"deviceTypes": [ "default", "tablet" ]}}

58.以下关于LocalStorage的说法正确有哪些?ACD

A.应用程序可以创建多个LocalStorage实例,LocalStorage实例可以在页面内共享,也可以通过GetShared接口,获取在UIAbility里创建的GetShared,实现跨页面、UIAbility内共享。B.LocalStorage中的所有属性都是不可变的。

C.被@Component装饰的组件最多可以访问一个LocalStorage实例和AppStorage,未被@Entry装饰的组件不可被独立分配LocalStorage实例,只能接受父组件的LocalStorage实例。

D.组件树的根节点,即被@Entry装饰的@Component,可以被分配一个LocalStorage实例,此组件的所有子组件实例将自动获得对该LocalStorage实例的访问权限。

59.HSP支持导出ArkUI组件、接口,供应用内的其他HAP/HSP引用,下面正确的是ABC

A.导出ts类和方法

B.导出ArkUI组件

C.导出native方法,在HSP中也可以包含C++编写的so。对于so中的native方法,HSP通过间接的方式导出,以导出liblibrary.so的乘法接口multi为例:

60.使用如下的代码去启动一个ability时,哪种skills定义的组件能够被匹配到:ACD

A.

"skills": [

{"uris":[

{"scheme": "https",

"host": "www.test.com",

"type" : "text/plain" }]}]

B.

"skills": [

{"uris":[

{"scheme": "https",

"host": "www.test.com",

"pathStartWith" : "query/books",

"type" : "text/plain" }]}]

C.

"skills": [

{"uris":[

{"scheme": "https",

"type" : "text/*" }]}]

D.

"skills": [

{"uris":[

{"scheme": "https",

"host": "www.test.com",

"pathStartWith" : "query/books",

"type" : "text/*" }]}

  • 27
    点赞
  • 210
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
QML中可以通过使用动画来实现各种特效,包括进场动画。其中,百叶窗特效是一种常见的进场动画,可以让界面元素以一定的节奏和方式出现。下面是一个简单的实现示例: ```qml import QtQuick 2.0 Rectangle { width: 300 height: 300 color: "white" Repeater { model: 5 Image { id: image source: "image.png" width: parent.width / 5 height: parent.height x: index * width clip: true transform: Scale { id: scale origin.x: width / 2 origin.y: height / 2 xScale: 1 yScale: 0 } Behavior on transform { PropertyAnimation { duration: 500 easing.type: Easing.InOutQuad } } } } Component.onCompleted: { for (var i = 0; i < repeater.count; i++) { var image = repeater.itemAt(i); image.scale.y = 1; } } } ``` 在这个示例中,我们使用了一个Repeater来创建了5个相同的Image元素,每个元素的宽度都是父元素宽度的1/5。我们将这些元素放置在一起,然后通过使用clip属性来将它们裁剪成相同大小。接着,我们为每个元素添加了一个缩放变换,初始时y轴的比例为0,这样它们就会“收缩”起来。最后,在组件完成时,我们将每个元素的缩放比例y设置为1,这样它们就会“展开”出现。 在这个示例中,我们使用了PropertyAnimation来控制变换的动画效果。该动画持续500ms,并且使用了Easing.InOutQuad缓动函数,使它看起来更加平滑。你可以根据需要对这些参数进行调整,以达到更好的效果。 总体来说,百叶窗特效是一种简单而又实用的进场动画,可以轻松地让你的应用程序变得更加生动有趣。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值