注意事项:切记在考试之外的设备上打开题库进行搜索,防止切屏三次考试自动结束,题目是乱序,每次考试,选项的顺序都不同,作者已于2024年11月22日又更新了一波题库,题库正确率99%!
新版题库:单选题40题 多选题20题 注意选项答案顺序不一样,大家记得看选项后面的值是否一样
考试链接地址:华为开发者学堂
基本介绍
博主一共多次过了鸿蒙高级认证,今年下半年官方认证题库突然改了,博主从新考了一次,把最新题库整理出来了
鸿蒙学习考试群
qq群号:767465523
单选题
1、以下哪个装饰器用来表示并发共享对象 (D)
A @Shared
B @State
C @Style
D @Sendable
2、以下关于Taskpool和Worker的描述正确的是 (C)
A TaskPool和Worker的任务执行时长上限都是无限制
B Worker自行管理生命周期,开发者无需关心任务负载高低
C TaskPool支持任务延时执行
D 开发者需要自行管理taskpool的数量及生命周期
3、ArkTS支持以下哪个函数 (D)
A Object.isExtensible();
B Object.isPrototypeOf();
C Object.getOwnPropertySymbols();
D Object.keys();
4、以下哪些赋值语句在ArkTS中是合法 (A)
A value2
B value3
C value1
D value4
5、下面关于方舟字节码格式IMM16_ID16_IMM8描述正确的是 (A)
A.8位操作码,16位立即数,16位id,8位立即数
B.16位前缀操作码,16位立即数,8位寄存器
C.8位操作码,16位立即数,16位id,8位寄存器
D.8位操作码,16位立即数,2个8位寄存器
6、从桌面冷启动如下应用,点击Change按钮5次,整个过程中,代码中的2条log依次出现的次数,最初和最后画面上显示的【num = ?】的数字是 (B)
A 1,5,1,6
B 2,4,1,2
C 2,4,1,6
D 0,6,1,6
7、以下关于ArkUI NavDestination组件的生命周期执行顺序中正确的是 (C)
AonWillappear->onAppear->onWillShow->onShow->onWillDisappear->onWillHide->onHidden->onDisappear
B onWillappear->onWillShow->onShow->onAppear->onWillHide->onHidden->onWillDisappear->onDisappear
C onWillappear->onAppear->onWillShow->onShow->onWillHide->onHidden->onWillDisappear->onDisappear
D onWillappear->onAppear->onWillShow->onShow->onWillHide->onWillDisappear->onHidden->onDisappear
8、已知下列代码PageOne页面为navigation中的某一子页面,依次点击PageOne页面中toPageTwo按钮,PageTwo页面中toPageOne按钮,此时点击get按钮获取全部名为name的NavDestination页面的位置索引为 (C)
A[0,1]
B[2,1]
C[0,2]
D[1,2]
9、一个复杂的项目,该项目不仅包含主入口模块(Entry Module),还有多个特性的功能模块(Feature Modules/HSP),并且这些模块间存在着相互调用关系。为了确保在调试过程中能够完整地测试所有交互逻辑,需要将涉及到的所有模块的HAP包都部署到目标设备上。请从以下选项中选择正确的操作步骤来配置DevEco Studio,以便一次性部署和调试项目中的多个模块 (A)
A 进入“Run > Edit Configurations”菜单,在“Deploy Multi Hap”选项卡下,勾选“Deploy Multi Hap Packages”,随后在列表中选择需要部署的模块。
B 无需特殊配置,DevEco Studio会自动检测到项目中的所有模块依赖,并在每次调试运行时自动部署所有相关HAP包。
C 在项目结构界面手动选择每个模块,单独编译并逐一将生成的HAP包通过HDC命令推送到设备上。
D 直接点击运行按钮,DevEco Studio会弹出对话框询问需要部署哪些模块,从中选择需要的模块后开始调试。
10、张工正在使用DevEco Studio进行一个复杂项目的开发工作,项目中包含了成千上万行代码且涉及众多模块。在重构代码的过程中,他意识到需要对一个核心类名进行更改,考虑到这个类在整个项目中被广泛引用,手动修改不仅耗时且容易出错。 基于DevEco Studio提供的代码编辑功能,以下哪个描述最准确地概述了张工如何高效且安全地完成对类名的更改,同时确保整个项目中所有相关引用同步更新?(B)
A 张工需打开项目搜索功能,输入旧类名找到所有匹配项,逐一进行替换,完成更名操作。
B 张工选中需要更名的类名,使用快捷键Shift+F6或右键菜单Refactor -> Rename,在弹出框中输入新名称并选择替换范围后,点击“Refactor”完成更名操作,确保所有相关引用自动更新。
C 张工只需简单选中需要更名的类名,按下Delete键删除后直接输入新名称,DevEco Studio会自动识别并更新所有引用。
D 张工在代码编辑器中右键点击该类名,选择“Find Usage”,手动浏览所有引用位置并逐一修改为新名称。
11、在开发HarmonyOS应用工程时,随着业务的发展,现在需要创建一个模块,关于在DevEco Studio中创建Module,下列选项哪种方式是错误的?(D)
A 鼠标移到工程目录顶部,单击鼠标右键,选择New > Module…,开始创建新的Module,此时该module将创建在工程根目录下。
B 选中工程目录中任意文件,然后在菜单栏选择File > New > Module…,开始创建新的Module,此时该module将创建在工程根目录下。
C 在工程根目录下创建一个新的Directory,可在该目录下单击鼠标右键,选择New > Module…,创建新的Module,此时module将创建在该文件目录下。
D 在hvigor目录下,单击鼠标右键,选择New > Module…,创建新的Module,此时module将创建在该文件目录下。
12、DevEco Studio提供HarmonyOS应用/服务的UI预览界面与源代码文件间的双向预览功能,支持ets文件与预览器界面的双向预览。关于双向预览,下列选项说法错误的是?(C)
A 选中预览器UI界面中的组件,则组件树上对应的组件将被选中,同时代码编辑器中的布局文件中对应的代码块高亮显示。
B 选中布局文件中的代码块,则在UI界面会高亮显示,组件树上的组件节点也会呈现被选中的状态。
C 双向预览不支持通过组件的属性面板实时修改属性或样式。
D 选中组件树中的组件,则对应的代码块和UI界面也会高亮显示。
13、在使用DevEco Studio的Profiler进行HarmonyOS应用或服务内存管理优化时,以下哪个描述最准确地概述了“Allocation Insight”功能在识别和解决内存问题中的作用 (C)
A Allocation Insight仅提供内存分配总量的概览,帮助开发者宏观了解内存使用趋势,但对于具体泄漏或抖动问题无能为力
B Allocation Insight详细展示应用运行时的每条语句柄分配记录,便于开发者逐一检查内存使用,但不提供内存泄漏的自动识别功能
C Allocation Insight通过分析应用服务运行时的内存分配及使用情况,辅助定位内存泄漏、内存抖动和溢出问题,支持优化内存使用
D Allocation Insight主要关注于内存碎片整理,减少内存分配的不连续性问题,对内存泄漏
14、HarmonyOS应用开发团队正着手优化一款面向全球市场的在线教育应用,该应用在特定课程直播环节出现了性能波动和响应延迟的问题,严重影响用户体验。打算利用DevEco Profiler来进行性能优化。DevEco Profiler其设计核心和主要优势是什么 (A)
A DevEco Profiler依据Top-Down设计理念,通过高度整合的数据展示范式,提供从宏观到微观的性能数据分析,加速开发者定位和解决问题的过程
B DevEco Profiler主要是一个自动化修复工具,能自动检测并解决所有HarmonyOS应用的性能问题
C DevEco Profiler专注于用户界面设计的美化,使开发者操作更为直观
D DevEco Profiler采用Bottom-Up设计原则,从底层代码细节开始逐步构建性能模型
15、应用开发中使用的各类资源文件,需要放入特定子目录中存储管理,以下关于资源说法错误的是 (D)
A base目录是默认存在的目录,二级子目录element用于存放字符串、颜色、布尔值等基础元素,media、profile存放媒体、动画、布局等资源文件。
B stage模型多工程情况下,共有的资源文件放到AppScope下的resources目录。
C resfile目录,应用安装后,resfile资源会被解压到应用沙箱路径,通过Context属性resourceDir获取到resfile资源目录后,可通过文件路径访问。
D rawfile目录,支持创建多层子目录,子目录名称可以自定义,文件夹内可以自由放置各类资源文件。目录中的资源文件会被编译成二进制文件,并赋予资源文件ID。
16、在组件中,经常需要使用字符串、图片等资源。HSP中的组件需要使用资源时,一般将其所用资源放在HSP包内,而非放在HSP的使用方处,以符合高内聚低耦合的原则。下面访问HSP资源错误的是 (B)
B 使用相对路径的方式,访问HSP中的资源。Image(“…/…/resources/base/media/example.png”) .id(‘example’) .borderRadius(‘48px’)
17、HarmonyOS提供了多种包结构,每种包编译后的产物都不同,下面说法错误的是 (C)
A hap包编译后的产物是.hap文件。
B hsp包编译后的产物是.hsp文件。
C app包编译后的产物是.app文件。
D har包编译后的产物是.har文件。
18、一个应用的一个UIAblity,其exported字段配置为false,以下哪个场景可以拉起这个UIAbility (A)
A caller应用在后台,申请了长时任务,有STARTINVISIBLE ABILITY权限
B caller应用在后台,申请了长时任务,有START ABILITY FROM BACKGROUND权限
C caller应用在后台,有STARTINVISIBLE ABILITY权限
D caller应用在后台,有START ABILITY FROM BACKGROUND权限
19、singleton模式的UIAbility,在冷启动时生命周期的执行顺序是:(D)
A onCreate->onForeground->onWindowStageCreate
B onCreate->onBackground->onForeground
C onCreate->onBackground->onWindowStageCreate
D onCreate->onWindowStageCreate->onForeground
20、可以通过下面那个接口拉起导航类的垂域面板 (C)
A startAbility
B startAbilityForResult
C startAbilityByType
D startAbilityByCall
21、下面的配置存在有几处错误 app.json5配置文件:(A)
A.1
B.4
C.2
D.3
22、当使用状态变量进行ArkUI组件间数据通信的时候,如果两个组件间没有直接的嵌套关系(非父子和祖孙关系组件),但是他们又属于同一页面,最佳的装饰器应该选用哪个?(D)
A @Provide+@Consume
B AppStorage
C @State+@Link
D LocalStorage
23、ArkUI组件复用的作用机制是减少了什么时间从而降低了丢帧率?(B)
A数据挂载时间
B组件节点和对象的创建时间
C组件销毁时间
D组件节点渲染时间
24、为了提高性能,所以List组件支持懒加载,可以通过配置cachedCount属性设置缓存列表项的数量。当我们不设置List的属性cachedCount时,该属性的默认值是?(A)
A 1
B 3
C 2
D 0
25、作为应用开发者,你使用hiAppEvent订阅了崩溃事件。应用崩溃后,从onReceive接口返回的AppEventInfo中()属性可以获取崩溃调用栈信息。(D)
A domain
B eventType
C name
D params
26、以下关于动态import说法正确的是(B)
A 动态import支持懒加载,所以不能用于提升页面的加载速度。
B 动态import支持加载HSP模块、HAR模块、OHPM包、Native库。
C 动态import和静态import相比,灵活性更好,性能更好。
D 动态import不支持导入SDK的API,如@ohos.*
27、以下对系统兼容性的理解正确的是 (C)
A.应用不需要关注系统的兼容性变化,那都是系统开发人员需要关注的事情
B.已发布的系统能力有可能会发生非兼容性变更,比如新增特性或修改问题导致的行为不兼容,这种情况下应用需要关注changelog并进行适配。
C.安全法律法规等不可控因素会导致系统非兼容性变更,开发者需要积极适配
D.系统能力都会保持绝对的兼容性,不能因为任何非兼容性的修改而导致开发者成本上升
28、关于静态检查描述错误的是 (D)
A.静态分析工具也在不断改进和升级。使用高级的静态分析工具可以提高代码检测的准确性和效率。例如,一些静态分析工具可以检测代码中的内存泄漏、死锁问题,从而提高代码的质量和可靠性。
B.静态检查是指使用静态代码分析工具对软件的“静态”(不运行的) 代码进行分析的一种方法,找出代码中潜在的漏洞。静态代码分析器检查源代码,找出特定的漏洞,并检查代码是否符合各种编码标准。
C.HarmonyOS应用可以采用ARKTS静态检查工具Codelinter或者CodeArts工具来做静态代码分析。
D.静态检查可以检测代码中的语法错误和潜在的逻辑错误,也支持检测代码在运行时现的错误,因此静态检查可以替代动态测试。
29、以下关于应用架构技术选型说法不正确的是 (D)
A 元服务和应用可以共用一个代码工程,采用多目标产物构建方式,构建出应用和元服务两个产物,用于上架。
B 对于初始版本的应用,功能比较简单,可以考虑采用单HAP加上多个HAR工程构建代码工程。
C 一些应用的扩展能力,比如备份、服务卡片,可以采用ExtensionAbility做成单独的feature HAP包,独立分发。
D 随着业务的发展,应用功能会越来越多,某些功能可以做成动态加载,动态加载的模块采用HAR工程来构建,方便复用和共享。
30、依次点击A、B、C、D四个按钮,其中不会触发UI刷新的是 (C)
A A
B B
C C
D D
31、使用promptAction.showToast如何设置显示在其他应用之上?(B)
A ToastShowMode.DEFAULT
B ToastShowMode.TOP_MOST
C 无需配置,默认显示在其他应用之上
D ToastShowMode.SYSTEM_TOP_MOST
32、为了使isShow参数值与半模态界面的状态同步,可以使用下列那种方式双向绑定isShow参数?
选择这个 $$this.isShow
=== 双【$】符号修饰
33、以下关于垂直滚动Grid组件使用cachedCount属性的说明正确的是 (A)
A 设置cachedCount为1,则Grid在显示范围上下各缓存1行GridItem
B 设置cachedCount为1,则Grid在显示范围下方缓存1行GridItem
C 设置cachedCount为1,则Grid在显示范围下方缓存1个GridItem
D 设置cachedCount为1,则Grid在显示范围上下各缓存1个GridItem
34、如果要实现Row组件内的子元素均匀排列,且第一个元素与行首对齐,最后一个元素与行尾对齐,需要使用justifyContent的哪个枚举值 (A)
A SpaceBetween
B Start
C End
D SpaceEvenly
35、项目需要为不同的设备形态(如手机、智能手表)提供定制化构建。请说明如何在DevEco Studio中设置不同的构建配置,以生成针对不同设备的hap包?(B)
A 在工程级别build-profile.json5定义多个product,在每个product的config/deviceType中定义不同的设备类型
B 在模块级别build-profile.json5定义多个target,在每个target的config/deviceType中定义不同的设备类型
C 在工程级别build-profile.json5定义多个product,在每个product的config/distributionFilter中定义不同的设备类型
D 在模块级别build-profile.json5定义多个target,在每个target的config/distributionFilter中定义不同的设备类型
36、开发者小林正在使用DevEco Studio开发一款HarmonyOS应用,并在真机上进行调试。他在运行应用的过程中突然发现一处UI布局需要微调,希望在不中断当前应用运行的情况下看到调整效果,基于DevEco Studio提供的Hot Reload(热重载)能力,以下哪一种做法能让小林最有效地实现他的需求 (B)
A 立即停止应用,修改代码后重新编译并部署到真机上
B 在不关闭应用的情况下,直接修改代码并保存,借助Hot Reload功能在真机上实时查看布局调整的效果
C 继续运行应用,手动重启应用后检查布局是否符合预期
D 使用模拟器替代真机进行调试,因为Hot Reload仅在模拟器上支持代码改动的即时生效
37、hiAppEvent提供的Watcher接口,()属性不配置,会导致编译报错,产生"ArkTS Compiler Error" (B)
A onTrigger
B name
C onReceive
D triggerCondition
38、一个应用项目工程中,模块依赖关系如下图所示,那么在最终编译结果.app文件中,存在的编译产物是:(A)
A A.hap + D.hsp
B A.hap + B.har + D.hsp
C A.hap + B.har + C.har + D.hsp
D A.hap + D.hsp + C.har
39、WebSocket连接开发步骤描述错误的是 (E)
A 订阅WebSocket的打开、消息接收、关闭、Error事件
B 创建一个WebSocket连接,返回一个WebSocket对象
C 导入需要的webSocket模块
D 使用完WebSocket连接之后,主动断开连接
E 调用Session.start方法开启metadata数据输出
F 根据URL地址,发起WebSocket连接
40、下面哪种转场效果在入场动画时,表现为从透明度为0、相对于组件正常显示位置×方向平移100vp的状态,到默认的透明度为1、相对于组件不平移的状态,且透明度动画和平移动画的动画时长均为2000ms
正确答案如下(从代码块找到如下代码)
TransitionEffect.OPACITY.animation({duration:2000}).combine(TransitionEffect.translate({x:100}))
41、以下示例代码中可以进行动画的属性有哪些? (D)
A 1、3
B 2、3
C 1、2、3
D 1、2
42、在使用DevEco Studio的Profiler进行HarmonyOS应用性能优化的流程中,以下哪个步骤最恰当地描述了开发者利用Profiler工具进行性能问题识别、定位、优化及验证的完整过程 (A)
A 利用“Realtime Monitor”初步识别性能瓶颈,创建深度分析任务定位根因,根据分析结果优化代码,再用“Realtime Monitor”验证优化效果
B 首先使用“Realtime Monitor”实时监控,观察应用资源消耗,一旦发现CPU或内存异常,直接修改代码并重新编译
C 仅通过创建深度分析任务,利用perf数据详细分析性能瓶颈,修改代码后,不需再进行验证直接发布应用
D 在发现应用性能不佳时,直接查看代码逻辑,凭经验修改后,利用Profiler的“Realtime Monitor”确认资源消耗是否降低
43、项目中包含多个模块和数千行代码。随着开发的深入,项目中的ArkTS源代码文件逐渐积累了大量import语句,其中不乏未使用的import以及不规范的排序情况,关于DevEco Studio的编辑器的“Optimize Imports”,以下说法正确的是 (B)
A 可以在菜单栏中依次点击“Code” > “Reformat Code”来达到优化import的目的,因为“Optimize Imports”功能已整合进“Reformat Code”中。
B 为了快速清理未使用的import,可以选中项目根目录,按下快捷键Ctrl+Alt+O(在macOS上为Control+Option+O),让DevEco Studio自动识别并移除所有未使用的import,并自动按照预设规则排序和合并import。
C 应该手动遍历每个ArkTS文件,逐一检查并删除未使用的import语句,然后按照字母顺序手动排序剩余的import。
D 在DevEco Studio中,没有直接的“Optimize Imports”功能,需要安装第三方插件来实现这个需求。
44、在使用DevEco Studio的Profiler进行HarmonyOS应用或服务内存管理优化时,以下哪个描述最准确地概述了“Allocation Insight”功能在识别和解决内存问题中的作用 (C)
A Allocation Insight仅提供内存分配总量的概览,帮助开发者宏观了解内存使用趋势,但对于具体泄漏或抖动问题无能为力
B Allocation Insight详细展示应用运行时的每条语句柄分配记录,便于开发者逐一检查内存使用,但不提供内存泄漏的自动识别功能
C Allocation Insight通过分析应用服务运行时的内存分配及使用情况,辅助定位内存泄漏、内存抖动和溢出问题,支持优化内存使用
D Allocation Insight主要关注于内存碎片整理,减少内存分配的不连续性问题,对内存泄漏
45、项目需要同时进行应用和元服务的开发,并针对当前项目工程中的代码可以分别构建出应用和元服务的包,如何在DevEco Studio中设置不同的构建配置,达成这个目的 (B)
A 修改工程级别的AppScope/app.json5中的bundleType值为app
B 在工程级别build-profile.json5定义两个product,将两个product的bundleType分别设置成app和atomicService
C 在模块级别build-profile.json5定义两个target,将两个target的bundleType分别设置成app和atomicService
D 修改工程级别的AppScope/app.json5中的bundleType值为atomicService
46、使用DevEco Studio进行复杂的跨设备功能开发与调试工作,期间频繁依赖本地模拟器来模拟多样化的设备环境。在这样的背景下,以下关于DevEco Studio本地模拟器所支持的规格与功能,哪一项描述是准确的 (B)
A 本地模拟器当前不支持查看HiLog以及FaultLog
B 本地模拟器上运行的应用无需进行签名,简化了调试过程。
C 本地模拟器当前不支持单元测试框架和UI测试框架的运行
D 本地模拟器和真机的能力没有任何差异,真机上可以支持的能力在模拟器上都可以
47、在一个包含多个模块(如entry、feature、service、library等)的大型HarmonyOS应用项目中,如果某个模块feature对另外一个公共库模块library有依赖,如何通过DevEco Studio正确配置项目依赖关系 (D)
A 在feature的build-profile.json5文件的dependencies字段中配置library的依赖
B 无需配置,直接在代码中编写import xxx from ‘library’
C 在library的oh-package.json5文件的dependencies字段中配置feature的依赖
D 在feature的oh-package.json5文件的dependencies字段中配置library的依赖
48、want参数的entities匹配规则错误的是 (A)
A 调用方传入的want参数的entities为空,待匹配应用组件的skills配置中的entities不为空,则entities匹配失败。
B 调用方传入的want参数的entities不为空,待匹配应用组件的skills配置中的entities不为空且包含调用方传入的want参数的entities,则entities匹配成功。
C 调用方传入的want参数的entities为空,待匹配应用组件的skills配置中的entities为空,则entities匹配成功。
D 调用方传入的want参数的entities不为空,待匹配应用组件的skills配置中的entities为空,则entities匹配失败。
49、HAR(Harmony Archive)是HarmonyOS提供的共享包,以下关于HAR的描述错误的是 (A)
A HAR不支持使用page页面
B HAR不支持在设备上单独安装/运行,只能作为应用模块的依赖项被引用
C HAR不支持引用AppScope目录中的资源。在编译构建时,AppScope中的内容不会打包到HAR中,因此会导致HAR资源引用失败
D HAR可以作为二方库和三方库提供给其他应用使用,如果需要对代码资产进行保护时,建议开启混淆能力
50、应用程序开发调试过程中,经常需要安装新应用进行调测,下面安装应用操作错误的是B
A bm install -p ohosapp.hap -r
B hdc install -p ohosapp.hap
C bm install -p /data/app/
D bm install -p ohosapp.hap
51、一个应用有2个UIAbility组件,其module.json中abilities标签的配置如下方代码。在手机设备上,执行如下操作后:
1.启动UIAbility1, 然后back键返回销毁UIAbility1;
2.启动UIAbility2, 然后back键返回销毁UIAbility2;
3.启动UIAbility2, 然后back键返回销毁UIAbility2;
进入多任务列表,能看看到该应用的几个任务视图:(A)
A 1个
B 0个
C 3个
D 2个
52、某个应用开发了一个UIAbilityA,其启动模式是specified,并且对应的AbilityStage的实现如下:(D)
A 2个
B 4个
C 1个
D 3个
53、通过aa工具拉起com.example.test的EntryAbility,并传参给EntryAbility,具体参数是number类型的[key1, 1] [key2,2] 和string类型的[key3, testString] [key4,''],那边下面那个aa 命令是正确的:(D)
A aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --ps 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 --psn key4
54、应用发生崩溃,()接口可以获取到崩溃时调用栈 (A)
A hiAppEvent
B hiLog
C hiDebug
D hiTraceMeter
55、我们需要避免在逐帧调用的接口中执行耗时操作,下面哪个选项不属于上述的接口 (D)
A. onTouch
B. onAreaChange
C. onScroll
D. aboutToReuse
56、关于ArkUI的ForEach和LazyForEach,下列说法错误的是?(C)
A LazyForEach需要配合cachedCount和组件复用一起使用,以达到性能的最优表现。
B ForEach和LazyForEach会根据定义的键值生成规则为数据源的每个数组项生成唯一键值,并创建相应的组件。
C 长列表滚动场景,优先使用ForEach。
D 当在滚动容器中使用了LazyForEach,框架会根据滚动容器可视区域按需创建组件,当组件滑出可视区域外时,框架会进行组件销毁回收以降低内存占用。
57、关于自动化测试描述正确的是:(A)
A XTS子系统是认证测试套件的集合,当前包括acts(application compatibility test suite)应用兼容性测试套件,后续会拓展dcts(device compatibility test suite)设备兼容性测试套件等。
B DT(开发者测试)就是UT,可看护的范围包括边界值问题、空指针或赋值错误,内部业务逻辑问题等等。
C 自动化测试因提高效率,减少重复工作的特性而被广泛采用;自动化测可以替代手动测试在处理复杂、难以预测的用户交互或特殊边界条件。
D Fuzz测试就是通过构造不规则的输入,从而触发程序的某种bug;Fuzz测试属于白盒测试。Fuzz测试也叫做模糊测试,通过输入非法字段,并观察软件是否异常来实现。一方面可以通过向软件输入非法字段,另一方面也可以通过向网络服务发送异常报文。
58、以下关于HAP(Harmony Ability Package)说法正确的是(B)
A 应用工程编出的app文件中,只能包含一个hap文件。
B 应用工程如果包含多个Module,在应用市场上架时,会将多个.hap文件打包成一个.app文件。
C HAP是应用安装和运行的基本单位,在DevEco Studio工程目录中,一个HAP对应一个Module。应用打包时,所有的Module都只能生成.hap文件。
D DevEco Studio会在编译构建时,不需要对HAP进行一致性校验。
59、某App有A、B、C、D四个团队分别负责ModuleA、ModuleB、ModuleC和ModuleD四个业务模块,随着业务的发展,ModuleA需要跳转到ModuleB、ModuleC的页面,ModuleB需要跳转到ModuleC、ModuleD的界面,ModuleC需要跳转到ModuleA的界面,ModuleD需要跳转到ModuleB和ModuleC的界面。由于复杂的依赖关系,导致一旦有变化就需要知会各个团队,所以该团队的架构师想要解耦各个业务模块,以下哪些做法是不推荐的(C)
A 在RouterModule中采用路由表方式解耦各个业务模块。
B 采用RouterModule作为中介者并用动态import解耦各个业务模块。
C 采用静态import方式引入对应跳转的页面。
D 可以采用Navigation作为页面导航根容器,将其放在entry中,其他Module的页面作为Navigation的子页面
60、在moduleA(HAP类型)中有一个图片名为image.png,在moduleB(HAR类型)也存在一个图片名为image.png,而moduleA依赖于moduleB,那么在moduleA的编译产物hap包中,image.png存在情况是:(B)
A 仅存在moduleB的image.png
B 仅存在moduleA的image.png
C 两者都存在
D 两者都不存在
61、关于代理提醒开发使用的接口是 (C)
A 使用startWork申请任务,使用stopwork取消任务,使用getWorkStatus获取任务状态
B 使用startBackgroundRunning申请任务,使用stopBackcroundRunning取消任务
C 使用publishReminder发布,个提醒类通知,使用cancelReminder取消一个指定的提醒类通知
D 使用requestSuspendDelay电请任务,使用getRemainngDelayTime获取任多剩余时间
62、在方舟字节码的函数调用规范中,前三个参数表示的含义分别是 (C)
A this、函数对象本身、new.Target
B new.Target、函数对象本身、this
C 函数对象本身、new.Target、this
D new.Target、this、函数对象本身
63、从桌面冷启动如下应用代码,点击Change按钮5次,整个过程中,代码中的2条log依次出现的次数是:(C)
A 6,0
B 2,4
C 1,0
D 1,5
64、以下哪份代码可以实现下图Grid布局
正确答案:通过GridLayoutOptions
65、在HarmonyOS应用开发中,当开发者遇到需要分析Release版本应用的崩溃或异常堆栈信息时,为了准确地将堆栈追踪信息对应到源代码的具体位置,以下哪个描述是正确的做法或理解(B)
A 开发者需手动将Release构建生成的so文件与源代码进行映射,配合第三方工具进行堆栈信息还原,虽然过程繁琐,但最终能定位到问题代码位置
B DevEco Studio提供的Release应用堆栈解析功能,要求开发者在遇到问题时,需上传构建产物中的特定文件(如so、source map、nameCache等)到指定工具或界面,借助这些文件辅助解析堆栈信息,实现从Release堆栈到源码的映射,便于快速定位问题
C DevEco Studio通过集成的Release应用堆栈解析功能,自动利用构建时产生的so文件、source map文件、nameCache文件等,无需额外操作即可直接在Release应用中提供详细的源码级堆栈追踪信息
D 因为Release应用经过优化和去除Debug信息,直接从堆栈跟踪到源代码行号是不可能的,开发者只能依靠日志信息手工推测问题所在
66、小李正在使用DevEco Studio进行HarmonyOS应用的开发工作,他需要对一个频繁被调用的函数calculateData()进行重构,为了帮助小李高效地找到calculateData()函数的所有引用位置,并确保重构时考虑周全,以下哪个步骤是正确的使用DevEco Studio的“Find Usages”功能的操作方法 (C)
A 小李应当在项目目录树中找到calculateData()函数所在的文件,直接双击打开文件,然后逐行扫描代码以手动查找该函数的所有调用位置。
B 小李应该在菜单栏中选择“Navigate” > “Class”来打开类浏览器,从中找到calculateData()函数,并在此界面中手动检查所有引用。
C 小李只需将光标定位在calculateData()函数名上,右键点击并选择“Find Usages”,或者直接使用快捷键Alt + F7(macOS为Option + F7),DevEco Studio会自动列出该函数在项目中的所有引用位置。
D 小李应将光标置于calculateData()函数的名称上,按下Ctrl + Shift + F(macOS为Command + Shift + F)全局搜索该函数名,然后在搜索结果中筛选出真正的调用位置。
67、小李正在使用DevEco Studio进行HarmonyOS应用的开发工作,他需要对一个频繁被调用的函数calculateData()进行重构,为了帮助小李高效地找到calculateData()函数的所有引用位置,并确保重构时考虑周全,以下哪个步骤是正确的使用DevEco Studio (C)
A小李应当在项目目录树中找到calculateData()函数所在的文件,直接双击打开文件,然后逐行扫描代码以手动查找该函数的所有调用位置。
B小李应该在菜单栏中选择“Navigate” > “Class”来打开类浏览器,从中找到calculateData()函数,并在此界面中手动检查所有引用。
C小李只需将光标定位在calculateData()函数名上,右键点击并选择“Find Usages”,或者直接使用快捷键Alt + F7(macOS为Option + F7),DevEco Studio会自动列出该函数在项目中的所有引用位置。
D小李应将光标置于calculateData()函数的名称上,按下Ctrl + Shift + F(macOS为Command + Shift + F)全局搜索该函数名,然后在搜索结果中筛选出真正的调用位置。
68、在使用DevEco Studio的Profiler进行HarmonyOS应用或服务性能分析时,面对应用出现卡顿、加载慢等性能瓶颈问题,以下哪个描述最贴切地说明了“Time场景分析任务”的功能及其对开发者优化流程的帮助(B)
A Time场景分析任务在应用运行时,通过显示所有函数执行的耗时排序列表,辅助开发者手动对比寻找耗时最短的函数进行优化
B Time场景分析任务展示热点区域内的CPU和进程级调用栈耗时情况,支持代码跳转,助力开发者快速定位并优化耗时较长的代码段
C Time场景分析任务专注于内存管理,帮助开发者监控应用内存泄漏,但对解决卡顿和加载耗时问题帮助有限
D Time场景分析任务仅提供应用/服务运行时的CPU使用率概览,帮助开发者粗略判断性能瓶颈,但不提供深入分析
69、开发者小林正在使用DevEco Studio开发一款HarmonyOS应用,并在真机上进行调试。他在运行应用的过程中突然发现一处UI布局需要微调,希望在不中断当前应用运行的情况下看到调整效果,基于DevEco Studio提供的Hot Reload(热重载)能力,以下哪一种做法能让小林最有效地实现他的需求 (B)
A 立即停止应用,修改代码后重新编译并部署到真机上
B 在不关闭应用的情况下,直接修改代码并保存,借助Hot Reload功能在真机上实时查看布局调整的效果
C 继续运行应用,手动重启应用后检查布局是否符合预期
D 使用模拟器替代真机进行调试,因为Hot Reload仅在模拟器上支持代码改动的即时生效
70、项目需要为不同的设备形态(如手机、智能手表)提供定制化构建。请说明如何在DevEco Studio中设置不同的构建配置,以生成针对不同设备的hap包?(B)
A 在工程级别build-profile.json5定义多个product,在每个product的config/deviceType中定义不同的设备类型
B 在模块级别build-profile.json5定义多个target,在每个target的config/deviceType中定义不同的设备类型
C 在工程级别build-profile.json5定义多个product,在每个product的config/distributionFilter中定义不同的设备类型
D 在模块级别build-profile.json5定义多个target,在每个target的config/distributionFilter中定义不同的设备类型
71、项目中涉及多个类的继承与重写。为了快速实现子类对父类方法的重写,小华想利用DevEco Studio提供的便捷功能来提高开发效率。他了解到,通过一个特定的操作流程,可以直接依据父类的模板生成子类中需要重写的方法代码,而无需手动编写完整方法体,在DevEco Studio中,如何正确使用Override Methods功能来快速生成子类需要重写的方法代码 (D)
A 在项目结构视图中找到目标子类,双击打开后直接在代码编辑区输入重写方法的签名,DevEco Studio将自动完成剩余代码。
B 将光标定位到子类的定义处,按下Ctrl+O(或右键单击选择Generate... > Override Methods),在弹出的对话框中选择要重写的方法,点击OK完成生成。
C 通过菜单栏File > Settings,配置Override Methods快捷方式,之后在代码中仅需选中父类方法名,即可自动在子类中生成重写代码。
D 将光标放置于任何代码行,按下Ctrl+B,然后在弹出菜单中选择Override Methods,之后勾选需要重写的方法并确认。
72、下面的配置存在有几处错误( )module.json5配置文件 (D)
A.1
B.4
C.2
D.3
73、在UIAbility的onCreate生命周期中通过EventHub的on注册"event1"和"event2"事件。 (C)
import { hilog } from '@kit.PerformanceAnalysisKit';
import { UIAbility, Want, AbilityConstant } from '@kit.AbilityKit';
const DOMAIN_NUMBER: number = 0xFF00;
const TAG: string = '[EventAbility]';
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
// 获取UIAbility实例的上下文
let context = this.context;
// 获取eventHub
let eventhub = this.context.eventHub;
// 执行订阅操作
eventhub.on('event1', this.eventFunc);
eventhub.on('event2', this.eventFunc);
hilog.info(DOMAIN_NUMBER, TAG, '%{public}s', 'Ability onCreate');
}
// ...
eventFunc(argOne: Context, argTwo: Context): void {
hilog.info(DOMAIN_NUMBER, TAG, 'receive. ' + `${argOne}, ${argTwo}`);
return
}
74、当标记了@Reuseable的自定义组件实现了组件复用后,这个组件的复用范围是什么 (B)
A 整个应用内都可以复用
B 标记了@Reuseable的自定义组件的父组件范围内
C 整个页面都可以复用
D 标记了@Reuseable的自定义组件的外层容器节点范围内
75、某App依赖了3个ohpm库,这3个库占用的体积都比较大。在App的技术架构中,有多个hap和多个hsp均依赖这3个库,为了减少app的首包大小,以下哪些做法是无效的?(C)
A 将3个ohpm库分别封装成3个hsp,并对外提供必要的接口。
B 将某些特性做成按需加载模块,若这3个ohpm仅在按需加载模块里面使用,则将其打包在按需加载模块中。
C 将这3个ohpm库封装到har包中,并对外提供必要的接口。
D 将3个ohpm库封装成1个hsp,并对外提供必要的接口。
76、关于短时任务开发使用的接口是(A)
A 使用requestSuspendDelay申请任务,使用getRemainingDelayTime获取任务剩余时间
B 使用startBackgroundRunning申请任务,使用stopBackgroundRunning取消任务
C 使用publishReminder发布一个提醒类通知,使用cancelReminder取消一个指定的提醒类通知
D 使用startWork申请任务,使用stopWork取消任务,使用getWorkStatus获取任务状态
77、开发者小张正在使用DevEco Studio开发一款HarmonyOS应用,他遇到了一个仅在应用实际运行环境中出现的问题,需要调试己部署在设备上的应用以定位问题根源,为了能够在应用已经运行的情况下介入调试,小张应该采用哪种调试方法
B、Attach Debugger to Process,这允许他连接到正在运行的应用进程进行调试。
78、下面持续交付&持续部署描述哪个是正确的 (B)
A 持续部署是将代码库中的任何更改都应该自动且快速地投入生产环境。持续部署等同于持续交付。
B 持续交付(CD, Continuous Delivery): 指的是,频繁的将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。它强调的是,不管怎么更新,软件是随时随地可以交付的。
C 在持续交付实践中,要考虑处理故障回滚和紧急修复,以确保系统在出现问题时能够快速恢复和修复。
D 持续交付可以随时随地部署到生产环境
79、某业务团队的架构师发现某个特性用的频率比较少,但是这个特性占用空间资源还是比较大的。为了减少首包下载体积,准备将该特性解耦出来,并对外提供API方便主模块调用。以下说法正确的是 (D)
A 将该特性做成hap包,通过Ability组件暴露出来给主app使用
B 将该特性做成动态加载的har包,暴露接口给主模块使用。
C 锦该特性做成H5模块,通过web组件加截远程资源使用
D 将该特性做成按需加载的hsp包,暴露接口给主模块使用
80、如果想让outer button响应事件,hitTestBehavior该怎么配 (C)
A HitTestMode.None
B HitTestMode.Default
C HitTestMode.Transparent
D HitTestMode.Block
81、在使用DevEco Studio进行混合语言开发时,开发者小李通过Napi引用了Native 接口的文件(例如d.ts文件)。他想要直接从这些接口跳转到其对应的C/C++函数实现处进行代码审查。请从以下选项中选择最合适的操作步骤来帮助小李实现这一目标 (A)
A 在声明或引用了Native接口的文件中,比如d.ts文件,小李可以直接选中接口名称,右键点击并在弹出的菜单中选择“Go To > Implementation(s)”(转到> 实现)。还可以使用快捷键Ctrl+Alt+B;如果是macOS用户,则使用Command+Option+B,直接跳转到对应的C/C++函数实现位置。
B 小李可以将鼠标光标置于想要查看实现的接口名称上,按下鼠标右键,在出现的上下文菜单中寻找并点击“Find Usages”(查找用法),在结果中筛选出C/C++的实现。
C 为了查看C/C++函数实现,小李必须先切换到DevEco Studio的C/C++开发环境视图,之后在项目的资源管理器中找到对应的C/C++源文件手动打开,才能查看函数代码
D 小李应该打开包含TypeScript接口声明的文件,然后手动在项目中搜索相应的C/C++源文件,逐个检查以找到匹配的函数实现
82、下面持续集成描述哪项是错误的:(D)
A Martin Fowler说过,”持续集成并不能消除Bug,而是让它们非常容易发现和改正。”
B 持续集成在大型项目(有几十个项目组)也能应用,即便是项目组开发进度不统一也没问题
C 持续集成(CI, Continuous Intergation): 指频繁的,一天多次将代码集成到主干。
D 持续集成就是持续编译,二者异曲同工
83、关于延迟任务开发使用的接口是 (D)
A 使用requestSuspendDelay申请任务,使用getRemainingDelayTime获取任务剩余时间
B 使用publishReminder发布一个提醒类通知,使用cancelReminder取消一个指定的提醒类通知
C 使用startBackgroundRunning申请任务,使用stopBackgroundRunning取消任务
D 使用startWork申请任务,使用stopWork取消任务,使用getWorkStatus获取任务状态
84、开发者张工想要高效地管理HarmonyOS设备中的文件,包括查看文件列表、进行文件搜索、新建及删除操作,以及在设备与PC间传输文件而无需使用命令行工具。以下哪个选项最能准确概括张工能通过哪个工具直接在DevEco Studio界面完成上述所有操作 (C)
A DevEco Studio的Terminal面板
B DevEco Studio的Project Explorer
C DevEco Studio的Device File Browser
D DevEco Studio的Log面板
85、开发者在编写ArkUI代码时,想要提前预览下所编写的组件的效果,下述哪个组件可以使用DevEco Studio Previewer正常预览?(A)
A @Preview @Component struct TitleSample { @StorageProp('title') title: string = 'PlaceHolder'; build() { Text(this.title) } }
B @Preview @Component struct LinkSample { @Link message: string; build() { Text(this.message) } }
C @Preview @Component struct ConsumeSample { @Consume name: string; build() { Text(this.name) } }
D import { add } from 'libnative.so'; @Preview @Component struct NativeSample { count: number = add(1, 2); build() { Text(`current count is ${this.count}`) } }
86、关于代码门禁理解正确的是:(A)
A 代码门禁则是在代码合并之前就验证代码来保护主干分支的完整性。通过这种方式,可以保护主分支代码避免因合码导致的构建中断,以确保 master 分支代码始终是可部署的,并且不会因明显的错误而影响到你正在并行开发的同事工作。
B 标准 CI 构建是在代码合并后检查已提交代码的功能完整性,这种方法会导致代码合并到master后编译失败导致没有可用版本部署。通过提高滚动构建的频度就可以代替代码门禁,保障代码主干及时发现并解决问题。
C 门禁级检查的范围和版本级检查的范围保持一致,尽可能多的在MR门禁阶段就拦截防护住问题,保障问题可以及时清理掉。
D 代码门禁是一项代码质量保障措施。目的是要求开发人员提交的代码必须满足一些要求才能合入代码仓库。门禁必须强制要求包括编译通过、单元测试覆盖率达标、代码静态检查无告警、全量功能测试用例、DFX专项测试都通过。
87、下面关于方舟字节码格式PREF_IMM16_V8_V8描述正确的是(A)
A 16位前缀操作码,16位立即数,2个8位寄存器
B 8位操作码,8位立即数,2个8位寄存器
C 8位操作码,8位立即数,16位id,8位寄存器
D 16位前缀操作码,16位立即数,8位寄存器
88、Text组件不支持以下哪种使用方式?(C)
89、当前您在开发一个ArkTS、Stage模型的HarmonyOS工程,关于当前ArkTS工程目录结构,下列选项说法错误的是?(D)
A entry > src > main > module.json5:Stage模型模块配置文件,主要包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。
B AppScope > app.json5:应用的全局配置信息。
C oh-package.json5:描述依赖配置,如:依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化配置(parameterFile)等。
D build-profile.json5:应用级编译构建任务脚本。
90、当您开始开发一个应用/服务时,首先需要根据工程创建向导,创建一个新的工程,工具会自动生成对应的代码和资源模板。关于新建工程,下列选项说法正确的是?(A)
A Compatible SDK是兼容的最低API Version。
B 应用包名(Bundle name)必须为以点号(.)分隔的字符串,且至少包含三段,每段中仅允许使用英文字母、数字,如“com.example.myapplication ”。
C 工程文件本地存储路径(Save location)允许包含中文字符。
D 创建用于Lite Wearable设备的工程,可以选择Native C++工程模板。
91、在编译构建HAP时,会从HAP模块及依赖的模块中收集资源文件,如果不同模块下的资源文件出现重名冲突时,会按照优先级进行覆盖,现在有一个HAP依赖了两个HAR,依赖配置如下所示:在资源覆盖时,以下优先级排序正确的是(A)
A AppScope>HAP包自身模块>dayjs模块>lottie模块
B AppScope>HAP包自身模块>lottie模块>dayjs模块
C HAP包自身模块>dayjs模块>lottie模块>AppScope
D HAP包自身模块>lottie模块>dayjs模块>AppScope
92、作为一个应用开发者,想搭建运维平台,想在应用内定时读取当前的内存信息,可以通过()接口来实现。(C)
A hiChecker
B hiAppEvent
C hiDebug
D hiLog
93、开发者小李遇到了一个复杂的问题,该问题仅在特定的代码执行路径上出现,且难以复现。他使用的是C++进行核心算法开发,代码的逻辑密集且对性能要求极高,DevEco Studio为C/C++开发者提供的高级调试能力,以下哪个能力可以帮助小李查看代码历史执行路径,回溯到关键的变量状态 (B)
A 代码静态分析:提供静态代码检查工具,通过语法和逻辑分析帮助预防潜在错误,但不涉及运行时问题定位
B 反向调试能力:允许开发者在调试过程中回退回到之前的代码行或断点,不仅查看过去的堆栈信息,还能重现历史的全局、静态和局部变量状态,帮助深入理解代码历史行为,特别是对于复杂逻辑和难以复现的bug定位至关重要
C 实时代码修改与运行时效果查看:支持在调试过程中修改代码并立即查看修改效果,适用于快速迭代,但不聚焦于问题追溯
D 传统调试模式:仅允许在当前断点暂停代码执行,查看调用堆栈和当前变量信息,但无法追溯历史执行状态
94、小华正在使用DevEco Studio开发一款基于HarmonyOS的ArkUI应用,该应用需要实现一个功能,即当用户点击按钮时,通过ArkTS/JS API调用系统的分享功能。小华对具体的API调用细节不太熟悉,如何通过DevEco Studio快速查阅相关的API文档。(B)
A 小华在代码编辑区直接键入分享功能相关的API调用代码,如 arkui.getShare(),然后按F1键,期望编辑器能自动跳转到该API的文档页面。
B 小华将鼠标悬停在编辑器中已经键入或打算键入的API调用(例如 @system.router.push)上,等待编辑器自动弹出悬浮提示框,显示该API的简要信息和不同版本参数说明。随后,点击提示框右下角的“Show in API Reference”链接,直接跳转到详尽的API参考文档页面。
C 小华右键点击代码编辑区,选择“Find Usages”选项,试图从其他地方引用该API的实例中学习如何使用分享功能。
D 小华应该先停止编码工作,打开浏览器,手动搜索关键词“HarmonyOS ArkUI 分享API”,在官方网站的文档页面中寻找相关API的使用方法。
95、根据上面代码,以下解释正确的是 (D)
A 在ChangeMode里改变mode的值,会触发其父组件Page的Title内容的切换。
B 为了避免@Prop的拷贝,可以优化使用@Link,在该例子中行为和@Prop一样。
C 本例子可以运行起来,所以代码没有问题。
D 在自定义组件Page的build方法里改变状态变量是非法操作,可能导致未定义的异常UI行为。
96、以下哪些赋值语句在ArkTS中是合法 (D)
class A {
v: number =0;
class B extends A {
u: string =",
class C {
v: number = 0;
let a1: A = new C();
let a2: A = new B();
let a3: B = new A();
let a4: C = new B();
A a4
B a3
C a1
D a2
97、下述代码片段,使用了哪些基于web的性能优化手段 (B)
98、开发者开发了一个应用,该应用只有一个hap包,其module.json5中abilities的配置如下 所示,包含1个UIAbility(无Web组件)、1个FormExtensionAbility组件、 1个WorkSchedulerExtensionAbility组件,那么该应用在运行过程中, 最多会存在几个应用进程: (C)
99、图片大小跟Image组件设置的宽高不匹配时,使用objectFit属性,不会缩放图片的类型时下面哪个选项(A)
A CENTER
B Fill
C Contain
D Cover
100、以下哪些赋值语句在ArkTS中是合法。(A)
101、在刷新Image组件内容时,如果观察到画面会闪一下白块,要怎样优化才能避免白块儿出现,同时又不会卡住画面?(D)
102、用于实现捏合控制的手势是如下哪个选项:(A)
103、使用DevEco Studio进行复杂的跨设备功能开发与调试工作,期间频繁依赖本地模拟器来模拟多样化的设备环境。在这样的背景下,以下关于DevEco Studio本地模拟器所支持的规格与功能,哪一项描述是准确的(B)
A本地模拟器当前不支持查看HiLog以及FaultLog
B本地模拟器上运行的应用无需进行签名,简化了调试过程。
C本地模拟器当前不支持单元测试框架和UI测试框架的运行
D本地模拟器和真机的能力没有任何差异,真机上可以支持的能力在模拟器上都可以
104、通过aa工具拉起com.example.test的EntryAbility,并传参给EntryAbility,具体参数是number类型的[key1, 1] [key2,2] 和string类型的[key3, testString] [key4,''],那边下面那个aa 命令是正确的:(D)
A aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --ps 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 --psn key4
105、通过aa工具拉起com.example.test的EntryAbility,并传参给EntryAbility,具体参数是number类型的[key1, 1] [key2,2] 和string类型的[key3, testString] [key4,''],那边下面那个aa 命令是正确的:(D)
A aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --ps 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 --psn key4
106、如果想要设置输入框的自定义键盘,可以使用下面的哪个接口?(A)
A customKeyboard
B showCounter
C showUnit
D enterKeyType
107、图片大小跟lmage组件设置的宽高不匹配时,使用objectFit属性,不会缩放图片的类型
是下面哪个选项(A)
A Center
B Cover
C Fill
D Contain
108、以下 Websocket 连接开发的步骤顺序,描述错误的是 ?()
答案:调用 Session.start 方法开启 metadata 数据输出
109、以下代码中,懒加载生效的是 ( C )
A.
"""@Entry
@Component
struct LazyTest {
data: MyDataSource<number> = new MyDataSource<number>()
build() {
List() {
ListItemGroup() {
LazyForEach(this.data, (item:number)=>{
ListItem() {
Text(item.toString())
.width('100%')
.height(100)
}
})
}
}.width(""""100%"""").height(""""100%"""")
}
}"" "
B.
"""@Entry
@Component
struct LazyTest {
data: MyDataSource<number> = new MyDataSource<number>()
build() {
Scroll() {
List() {
LazyForEach(this.data, (item:number)=>{
ListItem() {
Text(item.toString())
.width('100%')
.height(100)
}
})
}
}.width(""""100%"""").height(""""100%"""")
}
}"""
C.
"""@Entry
@Component
struct LazyTest {
data: MyDataSource<number> = new MyDataSource<number>()
build() {
List() {
ListItem() {
Column() {
LazyForEach(this.data, (item: number) => {
Text(item.toString())
.width('100%')
.height(100)
})
}
}
}.width(""""100%"""").height(""""100%"""")
}
}"""
D.
"""@Entry
@Component
struct LazyTest {
data: MyDataSource<number> = new MyDataSource<number>()
build() {
Scroll() {
List() {
LazyForEach(this.data, (item:number)=>{
ListItem() {
Text(item.toString())
.width('100')
110、以下哪个事件不会在List组件调用控制器ScrollBy接口触发?(B)
A. onScrolllndex
B. onScrollStart
C.onDidScroll
D. onWillScroll
111、现有一个宽高分别为200px的XComponent组件, 其绑定了一个XComponentController(xcController), 依次进行如下操作:
(1) xcController. setXComponentSurfaceRect( {surfaceWidth: 150, surfaceHeight:500} )
(2) 设置XComponent组件的padding为{ top: 5px, left: 10px, bottom: 15px, right: 20px}
(3) 将XComponent组件大小改为300px×300px
(4) 给XComponent组件设置一个宽度为2px的边框
(5) xcController. setXComponentSurfaceRect( { offsetX: -20, offsetY: 50,surfaceWidth: 200, surfaceHeight: -100 } )之后, 调用xcController. getXComponentSurfaceRect()的返回值为 (A)
A. { offsetX: 81, offsetY: -89, surfaceWidth: 150, surfaceHeight: 500}
B. {offsetX: 75, offsetY: -100, surfaceWidth: 150, surfaceHeight: 500}
C. { offsetX: 81, offsetY:-89, surfaceWidth: 200, surfaceHeight: 0}
D. {offsetX: -20, offsetY: 50, surfaceWidth: 200, surfaceHeight: 500}
112、如果想要设置文本的字体正斜体,可以使用下面的哪个接口?(A)
A fontStyle
B fontWeight
C fontSize
D fontColor
113、在一个包含多个模块(如entry、feature、har、hsp等)的大型HarmonyOS应用项目中,如果要对某个静态共享模块构建出静态构建包产物,如何通过DevEco Studio进行构建(A)
A 选中har模块,点击build菜单栏make module har
B 选中hap模块,点击通过菜单栏make module 'hap
C 选中hsp模块,点击通过菜单栏makemodule'hsp
D 选中har模块,点击bd菜单栏build hap(s)
114、开发者小张开发的项目希望可以增加一个卡片,用于呈现在设备桌面上,将应用的关键信息展示出来,在开发服务卡片时,以下说法正确的是?(A)
A.卡片的具体配置信息通常定义在resources/base/profile/目录下的form_config.json中
B.配置上动态卡片与静态卡片的差别在于isDynamic参数。当isDynamic置空时,该卡片为静态卡片
C.静态卡片内存占用较大,可实现静态信息展示、刷新和点击跳转。
D.动态卡片支持自定义交互、动效、滑动等功能,功能丰富且内存占用较小
115、应用程序开发调试过程中,经常需要安装新应用进行调测,下面安装应用操作错误的是(D)
A. bm install -p /data/app/
B. bm install -p ohosapp.hap -r
C.bm install -p ohosapp.hap
D. hdc install -p ohosapp.hap
116、在开发应用之前,开发者需要了解应用的包结构,鸿蒙应用定义了多种包格式,以下说
法错误的是(D)
A.HAP 可以独立编译、独立运行。
B.每个HAP中的配置文件只声明自己HAP中的组件信息。
C.以app(多个HAP打包到一起)的形式上架
D.HSP可以独立编译、独立运行。
117、在UlAbility的onCreate生命周期中通过EventHub的on注册"event1"和"event2”事件。(D)
[Example].[Entry].[EntryAbility]receive. []
[Example].[Entry].[EntryAbility]ireceive.[2,"test2"]
[Example].[Entry].[EntryAbility]receive.[2,"test2"]
118、下述冷启动场景代码片段,组件初始化生命周期中存在CPU密集型任务,为了降低应用冷启动时的白屏时延长,高性能优化方向的最优解为:(D)
aboutToAppear() {
this.doTask(); // 此为CPU密集型任务
}
A.使用Promise封装doTask
B.使用setTimeout封装doTask
C.无需优化
D.将doTask注册到taskpool中执行
119、下述场景代码片段,组件A、B互斥出现,请问用什么方案可以使页面内容在A、B切换时,保持高性能:(B)
A.使用条件渲染
B.使用显隐控制
C.以上两种方法均可,没有差别
120、下述代码片段中的renderGroup属性,对性能的影响是什么(A)
A 劣化
B 不一定
C 没有变化
D 优化
121、Image组件如下属性中哪个属性是支持svg图源的?(D)
A interpolation
B objectRepeat
C renderMode
D colorFilter
122、在如下界面中使用tab键走焦,正确的走焦顺序是?(A)
A Button3->Row2->Button4->Text2->Button2->Button3
B Button3->Row2->Button4->Text2->Button1->Button2->Button3
C Button3->Text1->Button4->Text2->Image1->Button2->Button3
D Button3->Button4->Text2->Button2->Button3
123、运行下面代码后,以下说法正确的是:(A)
A 点击update2按钮后,显示的字符串会变化
B 点击update3按钮后,显示的字符串会变化
C 点击update1按钮后,显示的字符串会变化
D 点击三个按钮,字符串都不会变化
124、如下页面区域1可以使用哪段代码实现:看图
125、下列代码中哪些不能指定半模态高度?(D)
A height: SheetSize.FIT_CONTENT,
B height: SheetSize.LARGE,
C height: SheetSize.MEDIUM,
D height: SheetSize.END,
126、折叠屏上如何实现折叠和展开时Grid列数和列宽自适应?(A)
A Grid().columnsTemplate(('repeat(auto-fit, 100)'))
B Grid().columnsTemplate('1fr 1fr 1fr 1fr 1fr 1fr')
C Grid().columnsTemplate(('repeat(auto-fill, 100)'))
D Grid().columnsTemplate('1fr 1fr 1fr')
127、下述列表场景代码片段,列表中存在大量数据,为了降低列表初始化时的耗时,高性能优化方向的最优解为:(D)
List() {
ForEach(...) // 列表项很多
}
.width('100%')
.height('100%')
A 结合使用选项A和B
B 无需优化
C 为List组件添加cachedCount属性
D 使用LazyForEach替代ForEach
128、HAP(Harmony.Ability Package)是应用安装和运行的基本单元,以下关于HAP的描述错误的是(C)
A HAP包是由代码、资源、第三方库、配置文件等打包生成的模块包,其主要分为两种类型:entry和feature。
B 同一应用所有HAP的配置文件中的bundleName、versionCode、versionName必须要保持一致。
C 支持导出接口和ArkUI组件,给其他模块使用。
D 同一应用所有HAP的签名证书必须要保持一致
129、ArkTS支持以下哪个函数。(D)
A Object.hasOwnProperty();
B Object.getOwnPropertyDescriptor();
C Object.getOwnPropertyDescriptors();
D Object.values();
130、已知下列代码PageOne页面为navigation中的某一子页面,依次点击PageOne页面中toPageTwo按钮,PageTwo页面中toPageOne按钮,此时获取当前页面的路由栈数量为多少 ()
答案是3
131、关于长时任务开发使用的接口是(B)
A. 使用publishReminder发布一个提醒类通知,使用cancelReminder取消一个指定的提醒类通知
B 使用startBackgroundRunning申请任务,使用stopBackgroundRunning取消任务
C 使用startWork申请任务,使用stopWor取消任务,使用getWorkStatus获取任务状态
D 使用reguestSuspendDelay申请任务,使用getRemainingDelayTime获取任务剩余时间
132、项目中包含原生代码,使用C/C++编写。请描述如何在DevEco Studio中配置CMakeLists.txt文件,以确保原生代码能够被正确编译和链接(B)
A 在build-Profile.json5定义的buildOption/externalNativeOptions/ abiFilters中设置CMakeLists.txt的路径
B 在build-Profile.json5定义的buildOption/externalNativeOptions/cppFlags中设置CMakeLists.txt的路径
C 在build-Profile.json5定义的buildOption/externalNativeOptions/arguments中设置CMakeLists.txt的路径
D 在build-Profile.json5定义的buildOption/externalNativeOptions/path中设置CMakeLists.txt的路径
133、一个应用的功能比较复杂,需要使用ExtensionAbility组件,针对该应用的开发,下面说法错误的是(B)
A 每个HAP中包含一个UAbility组件或者一个ExtensionAbility组件。
B ExtensionAbility使用独立的HAP实现,可能会存在多个HAP引用相同的HAR,导致重复打包的问题,因此把所有的HAR都使用HSP代替。
C 可以采用多HAP(即一个entry包+多个feature包)来实现应用开发。
D 根据二八原则,非常用的功能,封装成HSP,做成按需加载的模块。
134、下列哪种语言,是无法直接在Web组件加载的网页中运行的? (A)
A PHP
B WebAssembly
C JavaScript
D html
135、张工在使用DevEco Studio开发HarmonyOS应用时,遇到了代码编译警告和错误。为了提高开发效率,哪一项正确描述了张工如何利用DevEco Studio的Quick Fix功能来有效管理和修复代码中的问题?(D)
A 张工应该首先使用Ctrl + Shift + F快捷键全局搜索问题,然后手动在搜索结果中找出代码警告和错误的原因及位置。
B 张工在代码编辑界面看到红色波浪线标记的错误时,直接右键点击错误代码,选择“Delete Line”以移除错误代码行,从而“修复”问题。
C 张工只需在代码编辑界面按下F1键,DevEco Studio会自动识别当前光标所在行的错误并直接修复。
D 张工通过双击Shift键打开搜索框,输入"problems"打开问题工具面板,双击具体告警条目可直接跳转到问题代码行。接着,将光标置于告警位置,利用弹出的悬浮窗选择合适的修复建议或点击“More actions”以查看更多修复选项。
136、开发者小华开发了一个鸿蒙应用,功能开发自验证完成后,准备进行上架了,需要对应用的质量进行初步的评过,为了快速评估和提升产品品质,针对这个场景,小华可以使用IDE上哪个能力帮助他完成这个事情 (A)
A 应用与服务体检(App Analyzer)
B 代码质量审查(Code Review)
C 单元编程插桩测试(Unit Test)
D 实时序图调试(Sequence Diagram Debugger)
137、使用Web组件的JavascriptProxy接口与网页互通时,如果希望对发起JavaScript的网页URL进行权限控制。获取对应网页URL通过哪个接口最准确?(B)
A loadUrl的Url参数
B getLastJavascriptProxyCallingFrameUrl
C getUrl
D getOriginalUrl
138、Web组件的WebviewControler.prefetchPage方法预加载的资源有效期是?(C)
A 1分钟
B 3分钟
C 5分钟
D 2分钟
139、发者小李正在使用DevEco Studio开发一款面向HarmonyOS的应用,他需要使用鸿蒙的测试框架能力来确保应用质量,在编写测试框架代码时,关于测试框架的api能力说法正确的是:()
答案:afterAll:在测试套内定义一个清理条件,在所有测试用例结束后执行且仅执行一次,支持一个参数:清理动作函数
140、Web组件调试H5页面的加载性能,可以通过哪个工具? ()
答案:选择DevTools
141、以下关于指定实例启动模式说法正确的是?()
答案: 支持拉起指定标识的实例
142、以下关于Want的说法错误的是?()
答案: Want不支持自定义参数
143、关于组件复用,以下说法错误的是:()
答案: 可以通过设置cachedCount来指定缓存数量实现组件复用
144、下列哪项属于精简节点数的方式来优化布局性能。()
答案:移除冗余节点
145、模态转场不包括以下哪个类别?()
答案: 警告弹窗
146、属性animation可以在哪些组件中使用?()
答案:基础组件和容器组件
147、下列关于Web组件的属性,描述错误的是?()
答案 :javaScriptAccess设置注入JavaScript对象
148、下列关于Webview,描述错误的是?()
答案:一个WebviewController对象可以控制多个Web组件
149、在发布进度类型通知前需要查询以下哪一点?()
答案: 系统是否支持进度条模板
150、下面说法正确的是?()
答案: 调用notificationManager.cancel需要传入通知ID
151、以下有关线程安全的函数功能说明正确的是。()
答案:napi_ref_threadsafe_function:指示在主线程上运行的事件循环在线程安全函数被销毁之前不应退出。
152、关于napi_create_async_work接口中注册的execute和complete回调,以下哪个说法是正确的。()
答案:execute回调函数主要用于执行异步业务逻辑,代码运行在work子线程中
153、下面哪个API可以控制动画的播放?()
答案:play()
154、通过ohpm安装@ohos/lottie后,在哪个文件中会生成相关的配置信息?()
答案: oh-package.json5
155、以下服务,哪个属于应用框架能力()
答案:ArkUI
156、性能测试中关于时延的描述,以下说法错误的是:()
答案:热启动完成时延:应用首次启动时间,即点击触发启动开始到应用启动加载完成的时间。
157、关于稳定性测试,以下说法错误的是:()
答案:踩内存:指在用户正常操作的情况下,应用对内存使用不当,导致有限的内存资源申请超上限或使用完未被释放。
158、创建应用时,应用包名需要和在DevEco Studio中创建工程时哪个字段保持一致?()
答案:bundleName
159、以下哪个不是HarmonyOS安全设计理念要素?()
答案:高效性
160、下列哪个不是设备端侧证书?()
答案: CBG根证书
161、关于HiLog日志打印规则,下列说法错误的是:()
答案:日志中可以打印用户个人隐私信息
162、下列哪一项不是HiLog定义的日志级别:()
答案:FAIL
163、应用的界面图标,最小不得小于?()
答案:8vp
164、有内容填充的启动页在全屏状态停留时长不建议超过()
答案:3s
165、开发者名下有安卓版本的应用和HarmonyOS应用,为了打通应用账号数据,保证账号的连续性,推荐应用使用的账号唯一标识是()
答案:UnionID
166、调用账号登录接口,可以通过使用( )参数防止跨站攻击()
答案:state
多选题
1、在ArkTS中,以下哪些声明类的方式是正确的 (AD)
A C2
B C4
C C3
D C1
2、一个应用通常会包含多种功能,将不同的功能特性按模块来划分和管理是一种良好的设计方式。在开发过程中,我们可以将每个功能模块作为一个独立的Module进行开发,下面关于Module的说法正确的是 (ABC)
A Library类型的Module,用于实现代码和资源的共享,有两种类型,分别为Static Library和Shared Library两种类型。
B Ability类型的Module,用于实现应用的功能和特性,有两种类型,分别为entry和feature。
C feature类型的Module,应用的动态特性模块,一个应用中可以包含一个或多个feature类型的模块,也可以不包
D entry类型的Module,是应用的主模块,一个应用只能包含唯一一个entry类型的HAP。
3、在开发过程中,我们可以将每个功能模块作为一个独立的Module进行开发。关于Module,下列选项说法正确的是?(ABD)
A Shared Library:动态共享库。HSP中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。
B Static Library:静态共享库。HAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝。
C entry类型的Module:应用的主模块,包含应用的入口界面、入口图标和主功能特性,编译后生成entry类型的HAP。每一个应用分发到同一类型的设备上的应用程序包,可以包含一个或多个entry类型的HAP。
D feature类型的Module:应用的动态特性模块,编译后生成feature类型的HAP。一个应用中可以包含一个或多个feature类型的HAP,也可以不包含。
4、某业务团队发现用户对他们App的某个特性使用率并不高,为了节省用户首次下载安装包的体积。考虑将该特性做成按需加载,那么推荐该特性使用的工程模块类型是?(AB)
A.hap
B.hsp
C.app
D.har
5、哪些是持续部署最佳实践?
正确答案是:
A、监控和回滚机制:实时监控部署后的应用状态,如有问题及时回滚。
B、自动化部署流程:从代码提交到部署的整个流程应尽可能自动化。
D、灰度发布:先在小部分用户或区域进行部署,观察没问题后再全面推广。
G、环境一致性:保持开发、测试、生产等环境的高度一致性。
6、以下代码片段哪几处违反了ArkTS语法规范。(ACD)
A p.x = 'Hello!';
B let p = new Point(1.0, 1.0);
C p.z = 2.0;
D delete p.x;
7、以下napi代码有问题的是
正确答案:
B napi_ref g_ref = nullptr; /***** excute in main thread *****/ static napi_value DemoInMainThread(napi_env env, napi_callback_info info) { napi_value string = nullptr; napi_create_string_utf8(env, "bar", NAPI_AUTO_LENGTH, &string); napi_create_reference(env, string, 1, &g_ref); return string; } /***** excute in worker thread *****/ static napi_value DemoInWorkerThread(napi_env env, napi_callback_info info) { napi_value string = nullptr; napi_get_reference_value(env, g_ref, &string); napi_value object = nullptr; napi_create_object(env, &object); napi_set_named_property(env, object, "foo", string); return object; }
D static napi_value Demo(napi_env env, napi_callback_info info) { size_t argc = 1; napi_value args[1] = {nullptr}; napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); napi_value sizeObj = nullptr; napi_handle_scope scope = nullptr; napi_open_handle_scope(env, &scope); napi_call_function(env, nullptr, args[0], 0, nullptr, &sizeObj); napi_close_handle_scope(env, scope); int64_t width = 0; napi_value result = nullptr; napi_get_element(env, sizeObj, 0, &result); napi_get_value_int64(env, result, &width); return result; }
8、下面关于混淆的描述正确的是 (ABCD)
A 混淆支持ArkTS/TS/JS文件的混淆
B 代码混淆已经被集成了到SDK中,可以在DevEco Studio中方便地使用。
C API 10及以上版本的Stage模型、编译模式为release时,默认开启代码混淆功能;默认的混淆功能仅会混淆函数参数和局部变量的名称。
D 针对工程源码的混淆可以降低工程被破解攻击的风险,缩短函数名、类名和属性名,减小应用的大小。
9、下面关于方舟字节码指令含义说明正确的是 (AC)
A 假设寄存器v0存放了对象A, 寄存器v1存放了对象B,那么执行指令"mov v0, v1"后,v0存放对象B, v1存放对象B
B 假设寄存器v0存放了对象A, 寄存器v1存放了对象B,那么执行指令"mov v0, v1"后,v0存放对象A, v1存放对象A
C 假设寄存器v0存放了对象A, 累加器(acc)存放了对象B,那么执行指令"lda v0"后,v0存放对象A,acc存放对象A
D 假设寄存器v0存放了对象A, 累加器(acc)存放了对象B,那么执行指令"lda v0"后,v0存放对象B,acc存放对象B
10、下面关于ArkTS中import用法,正确的是(ABCD)
A import { export1 as alias1 } from "ets file name"
B import {export1 } from "ets file name"
C import * as name from "ets file name"
D import defaultExport from."ets file name"
11、以下关于ArkTS线程实例间传输实现方式描述正确的是 (AB)
A taskpool.execute(task).then(() => {});,TaskPool 共享传输实现方式
B w.postMessageWithSharedSendable(a);,Worker 共享传输实现方式
C task.setCloneList([a]); taskpool.execute(task).then(() => {});,TaskPool 共享传输实现方式
D w.postMessage(a);,Worker 共享传输实现方式
12、以下代码片段哪几个函数违反了ArkTS语法规范(AB)
A foo1
B foo4
C foo3
D foo2
13、在ArkTS中,以下哪些属性的声明是正确的。 (ACD)
A value1
B value2
C value4
D value3
14、如下ABC 3处手势,有机会执行的是哪几处?(AC)
A A
B B
C C
D NA
15、以下哪些实现方式可实现文本字号20的效果(ACD)
A 包含Text(undefined.{controller:this.controller})
B 包含Text('This is text').minFontSize(20)
C 包含Text(){ Span('span letter spacing').fontSize(20) }.fontSize(30)
D 包含Text('TextAlign set to center').fontSize(20)
16、依次点击A、B、C、D四个按钮,其中不会触发UI刷新的是:(AB)
A A
B B
C C
D D
17、如何实现类似下图布局(BC)
18、Code Linter针对ArkTS/TS代码进行最佳实践/编程规范方面的检查,最佳实践/编程规范方面的检查规则可以配置,针对codelinter的配置项一下哪些说法是正确的(ACD)
A ruleSet:配置检查使用的规则集,规则集支持一次导入多条规则。
B rules:可以基于ruleSet配置的规则集,新增额外规则项,但是无法修改ruleSet中规则默认配置
C ignore:配置无需检查的文件目录,其指定的目录或文件需使用相对路径格式,相对于code-linter.json5所在工程根目录,例如:build/**/*。
D files:配置待检查的文件名单,如未指定目录,规则适用于所有文件,例如:[“**/*.ets”,”**/*.js”,”**/*.ts”]。
19、一个应用通常会包含多种功能,将不同的功能特性按模块来划分和管理是一种良好的设计方式。在开发过程中,我们可以将每个功能模块作为一个独立的Module进行开发,下面关于Module的说法正确的是(ABC)
A Library类型的Module,用于实现代码和资源的共享,有两种类型,分别为Static Library和Shared Library两种类型。
B Ability类型的Module,用于实现应用的功能和特性,有两种类型,分别为entry和feature。
C feature类型的Module,应用的动态特性模块,一个应用中可以包含一个或多个feature类型的模块,也可以不包
D entry类型的Module,是应用的主模块,一个应用只能包含唯一一个entry类型的HAP。
20、在大型软件工程中,一般会伴随着多团队开发,各团队开发自己的业务模块,最后再由集成交付团队集成到一起,下面哪些是大型应用模块化开发最佳实践(ABCD)
A 若多个模块依赖了不同版本的HAR,使用OHPM的overrides机制配置指定使用哪个版本的HAR,以减少包大小。
B 避免用户首次下载应用耗时过长,及过多占用用户空间,不常用功能做成按需加载。
C 一次上架多端部署。
D 使用路由表进行模块间解耦。
21、通过如下openLink的接口启动,如下哪些配置的UIAbility不可能被拉起(下图不选,其余三个选)viewDate+https
22、某个应用的启动框架配置文件详细信息如下,以下说法正确的是:(ACD)
A StartupTask_001会在StartupTask_004之后执行
B StartupTask_003会在StartupTask_004之后执行
C StartupTask_005会在主线程执行
D StartupTask_006会在AbilityStage的onCreate前初始化完成
23、使用ArkUI组件复用之后,还是没有显著提升列表滑动场景的性能,属于组件复用未生效可能的原因有?(BCD)
A 没有在aboutToReuse更新关联的状态变量数据。
B 在aboutToReuse回调函数中更新了冗余的状态变量。
C 页面嵌套了过多自定义组件。
D 复用的自定义组件中使用if等条件渲染语句导致结构不相同,未使用reuseId标记。
24、下面关于动态import描述正确的是(ABC)
A 动态import根据入参是否为常量字符串分为常量动态import和变量动态import两种
B HAR模块间只有变量动态import时可以进行模块解耦
C 动态导入import0)是个异步接口,调用后将返回一个promise
D 常量动态import也必须配置runtimeOnly选项
25、下面关于混淆规则描述正确的是(AC)
A -enable-export-obfuscation:开启直接导入或导出的类或对象的名称和属性名混淆
B -enable-toplevel-obfuscation:开启属性混淆
C -disable-obfuscation:关闭所有混淆
D -enable-property-obfuscation:开启顶层作用域名称混淆
26、在ArkTS中,以下代码片段正确的是 (AB)
正确答案如下:
A function fn(x: string | number): string { return 'value: ' + x; } type funcType = (ns: string) => string; let func: funcType = fn;
B function fn(x: string | number): string { return 'value:' + x; } type funcType = (ns: string | number) => string; let func: funcType = fn;
27、以下代码片段哪几处违反了ArkTS语法规范。 (BCD)
A foo(1, 2);
B foo(1, 2, 3, 4);
C foo();
D foo(1, 2, 3);
28、以下关于Taskpool和Worker的描述正确的是(AC)
A Worker的任务执行时长上限是无限制
B Worker支持取消已发起的任务
C TaskPool支持设置任务的优先级
D TaskPool不支持线程复用
29、List组件onScrollIndex事件触发时机是 (BD)
A List组件滚动停止时触发
B List组件显示区域内第一个子组件或最后一个子组件或中间位置子组件索引值变化时触发
C List组件列表滚动时每帧触发
D List组件首次加载完成时触发
30、如果想让grid上的捏合手势手势生效,而不跟grid上的滚动手势形成冲突,.xxxx?手势接口应该怎么配置?(ACD)
A gesture
B GesureGroup
C priorityGesture
D parallelGesture
31、在基于Stage模型开发的应用项目代码下,都存在一个app.json5配置文件,用于配置应用的全局信息,以下app.json5配置文件错误的是 (AB)
结果如下:
32、使用如下的代码去启动一个ability时,哪种skills定义的组件能够被匹配到:(ACD)
33、以下哪些方式可以实现ArkWeb同层渲染能力(AD)
34、用户购买商品后,你需要及时发放相关权益。但实际应用场景中,若出现异常将导致应用无法知道用户实际是否支付成功,从而无法及时发放权益,即出现掉单情况。为了确保权益发放,你需要在以下哪些场景检查用户是否存在已购未发货的商品:(ABC)
A createPurchase请求返回1001860001-内部错误时
B 应用启动时
C createPurchase请求返回1001860051-由于已经拥有该商品,购买失败时
D finishPurchase请求返回1001860052-由于未拥有该商品,发货失败时
35、ArkTS对并发编程API和能力进行了增强,以下描述正确的是(BD)
A 单次I/O任务的开发场景中,必须使用TaskPool进行开发。
B CPU密集型任务场景中,当任务不需要长时间(3分钟)占据后台线程,而是一个个独立的任务时,推荐使用TaskPool进行开发。
C 默认情况下,Sendable数据在ArkTS并发实例间(包括主线程、TaskPool&Worker工作线程)传递的行为是拷贝传递。
D 在并发API的形式上,目前主要有两种:Worker和TaskPool。
36、ArkTS中不能使用以下哪些类型。(BC)
A union type
B any
C unknown
D tuple type
37、应用开发的有些场景中,如果希望根据条件导入模块或者按需导入模块,可以使用动态导入代替静态导入,面导入场景中适合使用动态import的是(ABCD)
A 当静态导入的模块很明显的降低了代码的加载速度且被使用的可能性很低,或者并不需要马上使用它。
B 当被导入的模块,在加载时并不存在,需要异步获取。
C 当被导入的模块说明符,需要动态构建。
D 当静态导入的模块很明显的占用了大量的系统内存且被使用的可能性很低。
38、以下代码片段哪几个class/interface违反了ArkTS语法规范。(AB)
Class Person {}
Class Student extends Person {}
class Instructor implements Person{}
interface Shape {}
interface Circle implements Shape {}
class Square implements Shape {}
A Instructor
B Circle
C Square
D Student
39、下面代码符合Node-API开发规范的是(AC)
A.
static napi_value Demo3(napi_env env, napi_callback_info info)
{
size_t argc = 2;
napi_value argv[2] = {nullptr};
napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr);
// 业务代码
return nullptr;
}
B.
static napi_value Demo1(napi_env env, napi_callback_info info)
{
size_t argc;
napi_value argv[10] = {nullptr};
napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
return nullptr;
}
C.
static napi_value Demo2(napi_env env, napi_callback_info info)
{
size_t argc = 0;
napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr);
if (argc == 0) {
return nullptr;
}
napi_value* argv = new napi_value[argc];
napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
// 业务代码
delete argv;
return nullptr;
}
D.
static napi_value Demo4(napi_env env, napi_callback_info info)
{
size_t argc = 5;
napi_value argv[3] = {nullptr};
napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
return nullptr;
}
40、ArkTS是鸿蒙生态的应用开发语言。下列说法正确的是(ACD)
A ArkTS在保持TypeScript(简称TS)基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开发期能检测更多错误,提升代码健壮性,并实现更好的运行性能。
B TS/JS代码支持import ArkTS代码。
C针对JavaScript(简称JS)/TS并发能力支持有限的问题,ArkTS对并发编程API和能力进行了增强。
D ArkTS提供了声明式UI范式、状态管理支持等相应的能力,让开发者可以以更简洁、更自然的方式开发应用。
41、Image组件以下哪些方式可显示图片?(ABCD)
42、HarmonyOS应用开发者小张,正在利用DevEco Studio进行一款复杂应用的UI界面调试。小张了解到ArkUI Inspector是DevEco Studio内置的一项强大工具,能够显著提升UI调试效率。基于ArkUI Inspector的特性描述,下列哪些描述是正确的(ABD)
A 交互式组件选择:用户既可以在组件树视图中选择组件,使UI界面上对应组件高亮显示并展示其属性详情;也可以直接在UI布局显示界面上点击选择组件
B UI效果查看:开发者能够查看连接真机上运行的应用程序的UI显示效果,页面组件树结构,以及选中组件的属性信息
C 性能监控:提供详细的UI渲染性能指标,帮助开发者识别布局瓶颈和渲染效率问题,从而优化应用性能
D UI快照管理:支持导出应用的UI界面为快照图片,并允许这些快照被导入回ArkUI Inspector中,便于离线分析或分享讨论UI设计方案
43、以下关于LocalStorage的说法正确有哪些?(ABD)
A 组件树的根节点,即被@Entry装饰的@Component,可以被分配一个LocalStorage实例,此组件的所有子组件实例将自动获得对该LocalStorage实例的访问权限。
B 应用程序可以创建多个LocalStorage实例,LocalStorage实例可以在页面内共享,也可以通过GetShared接口,获取在UIAbility里创建的GetShared,实现跨页面、UIAbility内共享。
C LocalStorage中的所有属性都是不可变的。
D 被@Component装饰的组件最多可以访问一个LocalStorage实例和AppStorage,未被@Entry装饰的组件不可被独立分配LocalStorage实例,只能接受父组件的LocalStorage实例。
44、在基于Stage模型开发的应用项目代码下,每个模块都存在一个module.json5配置文件,用于配置模块的基本信息,以下module.json5配置文件正确的(ABD)
45、hiAppEvent提供的Watcher接口,订阅到的系统事件,哪些包含HiLog日志?(BD)
A 启动耗时事件
B卡死事件
C CPU高负载事件
D 崩溃事件
46、当前动态import支持导入的模块类型有哪些?(ABCD)
A 动态import支持加载本地HAR模块
B 动态import支持加载远程HAR模块
C 动态import支持加载HSP模块
D 动态import支持加载OHPM模块
47、Arkrs是鸿蒙生态的应用开发语言。以下哪些选项是ArkTs的设计理念。(ABD)
A 通过规范强化静态检查和分析,减少运行时的类型检查,从而降低了运行时负载,提升执行性能。
B ArkTS保留了TS大部分的语法特性,帮助开发者更容易上手ArkTS。
C ArkTS不支持null-satety特性。
D 通过规范强化静态检查和分析,使得许多错误在编译时可以被检测出来,降低代码运行错误的风险。
48、以下代码片段哪几处违反了ArkTS语法规范(ABD)
A foo(null);
B foo('');
C foo(0);
D foo(undefined);
49、以下哪些是可以在Navigation中使用pushPathByName接口传递的params的参数类型(ABC)
A record<string,string>
B string
C arrayBuffer
D map<string,string>
50、下面关于方舟字节码文件格式描述正确的是(BD)
A 方舟字节码文件中不包含字节码文件内容的ader32校验和
B 方舟字节码文件中数据类型uint16 t表示16-bit无符号整数,采用小端字节序
C 方舟字节码文件中数据类型uint32 t表示32-bit无符号整数,采用大端字节序
D 方舟字节码文件是ArKTS/TS/JS编译后的二进制产物
51、在开发HarmonyOS应用的多元化测试环境中,DevEco Studio引入了本地模拟器(Local Emulator)作为重要工具,旨在帮助开发者在个人开发机器上高效模拟HarmonyOS环境,进行应用或服务的快速运行与细致调试。请根据本地模拟器的实际应用场景与系统要求,选出所有正确的描述选项(BCD)
A 开发者需要注意的是,DevEco Studio的本地模拟器可以在虚拟机内部进一步运行,以节省硬件资源。
B DevEco Studio的本地模拟器允许开发者在个人电脑上模拟HarmonyOS环境,便于应用或服务的运行与调试。
C mac计算机配置方面,为了确保本地模拟器的稳定运行,推荐至少配备8GB RAM。
D 为了保证流畅的运行和调试体验,本地模拟器推荐macOS系统版本至少为12.5以上。
52、下面关于混淆的描述正确的是(ABCD)
A 可以在HAR模块工程的build-profile.json5中的obfuscation.consumerFiles字段中配置导出的混淆配置,该配置仅在编译依赖该HAR的模块时生效。
B 支持顶层作用域名称、属性名称、文件名称等多种混淆功能
C 在工程build-profile.json5中的obfuscation.ruleOptions.files字段中配置该工程的混淆配置,该配置仅在编译该工程时生效。
D 修改应用混淆配置,新配置需要重新全量编译应用才能生效
53、如下哪些方式可实现图片动态播放 (ABD)
不选带有下面这个的,其余3个全选 private async getPixelMaps() { // ==================== 怎么没有定义Mypixelmaps???????? Mypixelmaps.push(await this.getPixmapFromMedia($r('app.media.icon'))) //对应资源图片名后缀为png return Mypixelmaps; }
54、下面关于混淆规则描述正确的是(CD)
A -keep-property-name [,identifiers,...]:指定要保留的顶层作用域的名称
B -keep-global-name [,identifiers,...]:指定想保留的属性名
C -print-namecache filepath: 将名称缓存保存到指定的文件路径。
D -keep-file-name [,identifiers,...]:指定要保留的文件/文件夹的名称
55、下面关于Node-API数据类型描述正确的是(CD)
A napi threadsafe function release mode:该枚举类型定义了两个常量,用于指定线程安全函数的调用模式
B napi threadsafe_function_call mode:该枚举类型定义了两B个常量,用于指定在何时释放线程安全函数的回调函数
C napienv:用于表示Node-API执行时的上下文
D napi status:是一个枚举数据类型,表示Node-API接口返回的状态信息
56、以下数据类型中,哪些是Sendable数据。 (ACD)
A number
B class C
C interface I
D string
57、处于安全因素考虑,ArkTS不支持以下哪些语法。(ACD)
A with()
B Object.entries()
C eval()
D new Function('a', 'b', 'return a + b')
58、在ArkTS中,以下哪些声明类的方式是正确的(AD)
A C2
B C4
C C3
D C1
59、小华正在使用DevEco studio开发一个复杂的Harmonyos应用,他意识到代码中有一段逻辑被多次重复使用,为了优化代码结构和减少冗余,他决定将这段逻辑提取出来作为一个独立的方法。同时,他也注意到有些常用的硬编码值可以抽象为常量,以提高代码的可读性和维护性。小华希望利用DevEco Studio的代码重构功能来高效完成这些任务,通过以下哪些操作来实现代码重构,以提升编码效率(ABCD)
A 为了简化复杂类型的多次书写,小华可以选择特定类型字面量,通过“Refactor"菜单下的“Extract Type Alias”来创建类型别名
B 选中需要重构的代码块,右键点击选择“Refactor”,然后选择“Extract Method”来将代码块转换为一个新的函数/方法
C 若需要将局部变量提升为类成员变量,小华只需简单选中变量名,右键选择“Refactor”->“Promote Local Variable”
D 如果小华识别到一组相关的对象字面值可以抽象为一个接口,他可以直接通过“Refactor”"菜单中的Extract Interface”功能实现
60、哪些是持续集成最佳实践(ACDFG)
A 代码审查:在集成前进行代码审查,及时发现潜在问题。
B 构建相同代码的 Pipeline 运行多次,得到结果不同。比如,基于同一代码基线,一条 Pipeline 构建了 5 次,只要最后一次通过即可。反模式
C 全面的测试套件:包括单元测试、集成测试、功能测试等,以提高代码质量。
D 自动化构建:确保构建过程是完全自动化的,减少人为错误。
E 通常项目上会有一个专职 Ops,在项目可以发布的时候手动触发部署流程,或者需要传递很多参数,让 Pipeline 运行起来。反模式
F 快速反馈机制:让开发人员能迅速得知集成结果和测试状态。
G 频繁提交代码:鼓励开发人员经常提交小的代码更改,以便更快地发现问题。
61、下面代码符合ArkTS编程规范的是(AC)
62、下面代码符合ArkTS编程规范的是(AB)
63、下面关于ArkTS中export用法,正确的是(ABCD)
A export { export1 as alias1 } from "ets file name";
B export * as name from "ets file name"
C export * from "ets file name"
D export { export1 } from "ets file name";
64、为了加快构建速度,提高开发效率,可以如何调整hvigor配置,从而优化构建速度(BCD)
A 启用hvigor的typeCheck,在增量场景下进行对hvigorfile.ts进行类型检查
B 启用hvigor的incremental,在增量场景下检查任务是否可以跳过
C 启动hvigor的daemon模式,在增量场景下复用缓存
D 启用hvigor的parallel,在增量场景下进行并行编译处理
65、Navigation组件是路由导航的根视图容器,一般作为Page页面的根容器使用,以下关于Navigation组件说法正确的是 (CD)
A Navigation只能在entry类型的Module中使用
B Navigation子页面的根容器可以采用如Column、Row这些容器组件
C Navigation的页面显示模式有单页面、分栏和自适应三种显示模式
D Navigation的子页面可以来自不同的Module
66、使用如下的代码去启动一个ability时,哪种skills定义的组件能够被匹配到:(ACD)
67、HSP支持导出ArkUI组件、接口,供应用内的其他HAP/HSP引用,下面正确的是 (ABC)
68、项目组开发的HarmonyOS应用工程,为了保护hap代码资产,如何在DevEco Studio中启用混淆的功能,并设置相应的混淆规则(BD)
A release模式下将buildOption/arkOptions/ruleOptions/enable设置为false
B release模式下将buildOption/arkOptions/ruleOptions/enable设置为true
C 在混淆规则配置文件consumer-rules.txt中进行混淆规则的配置
D 在混淆规则配置文件obfuscation-rules.txt中进行混淆规则的配置
68、Image组件如下加载方式哪些是正确的(假设加载地址是有效的)(ABD)
69、ArkTS是鸿蒙生态的应用开发语言。以下哪些选项是ArkTS的设计理念。(BCD)
70、在应用开发中,部分代码和资源被重复引用和编译构建,可以新建什么模块来实现代码和资源的共享?(AD)
A HAR
B HAP
C APK
D HSP
71、哪些是持续集成最佳实践? (ABCEF)
A 代码审查 :在集成前进行代码审查,及时发现潜在问题。
B 快速反馈机制 :让开发人员能迅速得知集成结果和测试状态。
C 全面的测试套件 :包括单元测试 、集成测试 、 功能测试等, 以提高代码质量。
D 通常项目上会有一个专职Ops,在项目可以发布的时候手动触发部署流程......
E 频繁提交代码 :鼓励开发人员经常提交小的代码更改, 以便更快地发现问题。
F 自动化构建 :确保构建过程是完全自动化的,减少人为错误。
G 构建相同代码的Pipeline运行多次。。。。。。。
72、开发者小张在开发鸿蒙应用项目时,首选需要涉及当前的工程结构,工程项目结构方案设计时,了解。。。。。。(ABD)
A 有三类进程。。。
B 采用面向对象的方式
C 通过导出匿名对象
D 一个进程可以运行多个应用组件实例,,,,,
73、当popup气泡弹出后(默认配置),以下哪些行为可以使popup气泡关闭?(AB)
A 屏幕侧滑
B 点击气泡外的屏幕
C 窗口大小发生变化
D 息屏
74、 以下关于Menu的说法正确的是?(ABCD)
A 当设置的预览图片。。。
B 当布局。。。
C Menu。。。。。
D 菜单的退出方式。。。。
75、下面哪些情况下推荐使用Web组件的onInterceptRequest进行网络拦截(BD)
A 打开新的网页时,替换原网页的URL
B 点击网页<a href.....123456789.....
C 进入首页后,提前加载下一页面的数据
D 网页加载时,使用本地离线图片资源,替换.....
76、以下关于Menu的说法正确的是?(ABCD)
A bindContextMenu长按弹出的菜单可支持拖拽,bindMenu不支持拖
B 使用状态变量控制菜单显示时,需要等待目标节点构建完成后才能设置,如目标节周期
C 用状态变量控制菜单显示时,需要等待目标节点构建完成后才能设置,如目标节周期
D bindContextMenu总是显示在子窗口中,在PC设备上可以超出应用主窗口显示
77、下述场景代码片段,其中列表数据较多,且图片为远端图片,能有效减少列表滑动过程中的图片白块的措施有:多选(ABD)
A.为List添加cachedCount属性
B.为LazyForEach添加第三参数
C.使用ForEach替换LazyForEach
D.为img添加有效缓存管理
78、以下代码在平板设备下,支持下拉关闭弹窗的是?(AC)
A.
// xxx.ets
@Entry
@Component
struct SheetTransitionExample {
@State isShow:boolean = false
@Builder myBuilder() {
Column() {
}
.width('100%')
}
build() {
Column() {
Button("transition modal 1")
.onClick(() => {
this.isShow = true
})
.fontSize(20)
.margin(10)
.bindSheet($$this.isShow, this.myBuilder(),{
detents:[SheetSize.MEDIUM,SheetSize.LARGE,200],
title:{title:"title", subtitle:"subtitle"},
preferType: SheetType.CENTER,
shouldDismiss:((sheetDismiss: SheetDismiss)=> {
console.log("bind sheet shouldDismiss")
sheetDismiss.dismiss()
})
})
}
.justifyContent(FlexAlign.Start)
.width('100%')
.height('100%')
}
}
B.
// xxx.ets
@Entry
@Component
struct SheetTransitionExample {
@State isShow:boolean = false
@Builder myBuilder() {
Column() {
}
.width('100%')
}
build() {
Column() {
Button("transition modal 1")
.onClick(() => {
this.isShow = true
})
.fontSize(20)
.margin(10)
.bindSheet($$this.isShow, this.myBuilder(),{
detents:[SheetSize.MEDIUM,SheetSize.LARGE,200],
title:{title:"title", subtitle:"subtitle"},
preferType: SheetType.POPUP,
shouldDismiss:((sheetDismiss: SheetDismiss)=> {
console.log("bind sheet shouldDismiss")
sheetDismiss.dismiss()
})
})
}
.justifyContent(FlexAlign.Start)
.width('100%')
.height('100%')
}
}
C.
// xxx.ets
@Entry
@Component
struct SheetTransitionExample {
@State isShow:boolean = false
@Builder myBuilder() {
Column() {
}
.width('100%')
}
build() {
Column() {
Button("transition modal 1")
.onClick(() => {
this.isShow = true
})
.fontSize(20)
.margin(10)
.bindSheet($$this.isShow, this.myBuilder(),{
detents:[SheetSize.MEDIUM,SheetSize.LARGE,200],
title:{title:"title", subtitle:"subtitle"},
preferType: SheetType.BOTTOM,
shouldDismiss:((sheetDismiss: SheetDismiss)=> {
console.log("bind sheet shouldDismiss")
sheetDismiss.dismiss()
})
})
}
.justifyContent(FlexAlign.Start)
.width('100%')
.height('100%')
}
}
D.
// xxx.ets
@Entry
@Component
struct SheetTransitionExample {
@State isShow:boolean = false
@Builder myBuilder() {
Column() {
}
.width('100%')
}
77、Tabs组件可填入以下哪些参数:(ABD)
A barPosition
B controller
C backgroundColor
D Index
78、以下哪几个属于属性字符串支持的StyledStringValue? (CD)
A Span
B ParagraphStyle
C TextStyle
D TextShadowStyle
79、Web组件支持以下哪些常用属性(ABC)
A darkMode(mode:WebDarkMode)设置网页深色模式
B textAutosizing 设置使能文本自动调整大小
C copyOptions(value:CopyOptions)设置剪贴板复制范围
D InputWindowlnfo 设置网页输入法软键盘的窗口信息
80、当UIAbility组件配置为指定实例启动模式后,其执行过程说法正确的有(BD)
A 会触发调用方AbilityStage的onAcceptWant()函数
B 会触发被调用方AbilityStage的onAcceptWant()函数
C onAcceptWant()函数的返回值是布尔类型
D onAcceptWant()函数的返回值是字符串类型
81、以下哪种场景,会触发Image组件的OnComplete回调事件(假设加载地址是有效的)(不确定)
A 组件宽高变化
B 图源发生变化,比如从$r("app.media.MG 8809")切换成$r("app.media.IMG 1100”)
C 页面首次加载
D 系统设置中深浅色模式发生变化
作者选bc是错误的,选abc也是错误
82、如何实现类似下图的布局:选下面两个作为答案
83、在使用DevEco studio进行Harmonyos应用开发和调试过程中,开发者小张遇到应用运行时意外终止的情况,他需要快速定位并解决导致应用崩溃的问题。以下哪些做法可以帮助小张有效分析和处理这些问题(AD)
A 利用系统自动生成的FaultLog,包括AppFreeze、Cpp Crash、JS Crash、System Freeze和ASan报告,这些报告会详细记录故障发生时的环境、堆械信息和可能的故障原因,是排查问题的重要参考
B 若遇到App运行卡顿或系统整体无响应(App Freeze,System Freeze)的情况;可以通过性能分析工具中的Frame insight和Allocation insight功能,分析应用的资源清耗情况,寻找可能的瓶颈
C 查看DevEco Studio log工具栏输出的错误日志,根据日志提示分析应用崩溃的具体原因及代码位置
D 当怀疑问题是由于C++代码中的内存错误(如数组越界、内存泄露、重复释放内存)引起时,进入"Run/Debug Configurations"设置界面,勾选启用Addres Sanitizer (Asan),然后重新部署应用进行测试以获取更详细的内存问题报告
84、TabContent支持哪些设置对应TabBar内容的方式?(BC)
A TabContent().tabBar(SubTabBarStyle.of('tabBar’))
B @Builder tabBuilder{
...
}
TabContent(),tabBar(this.tabBuilder())
C TabContent().tabBar(“tabBar”)
D TabContent().tabBar(BottomTabBarStyle.of(r(sys media.ohos.app_icon), “tabBar”))
85、 以下代码中,懒加载生效的是(选下面两个)
正确答案:
86、使用隐式Want启动UIAbility组件时,以下说法正确的是?()
正确答案:
可以在创建的Want中设置想要启动的UIAbility组件的能力字段,如“entities”。
想要在启动浏览器类型应用内时默认打开网页,可以在创建的Want中设置“uri”字段。
在module.json5配置文件中,“skills”表示应用组件支持的能力。
87、针对长列表加载这一场景,可以采用哪些手段和方法来提升性能和用户体验:()
正确答案:
懒加载:提供列表数据按需加载能力,解决一次性加载长列表数据耗时长、占用过多资源的问题,可以提升页面响应速度
缓存列表项:提供屏幕可视区域外列表项长度的自定义调节能力,配合懒加载设置可缓存列表项参数,通过预加载数据提升列表滑动体验。
组件复用:提供可复用组件对象的缓存资源池,通过重复使用已经创建过并缓存的组件对象,降低相同组件短时间内频繁创建和销毁的开销,提升组件渲染效率。
布局优化:使用扁平化布局方案,减少视图嵌套层级和组件数,避免过度绘制,提升页面渲染效率。
88、高级模板将属性动画和出现消失动画封装,开发者只需调用接口,可以轻松完成页面转场。HarmonyOS提供了哪些高级模板?()
正确答案:
导航转场
模态转场
共享元素转场
89、HarmonyOS提供了哪些系统动画能力?()
正确答案:
属性动画
显式动画
转场动画
路径动画
粒子动画
90、Web组件支持下列哪些属性或事件?()
正确答案:
fileAccess(fileAccess: boolean)
javaScriptAccess(javaScriptAccess: boolean)
onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) => boolean)
91、下面哪些方法可以移除通知?()
正确答案:
cancel
cancelAll
92、关于线程安全函数开发,以下哪些说法是正确的。(全选)
正确答案:
在创建线程安全函数对象时,要注册绑定ArkTS应用侧传入的callback回调和线程安全回调napi_threadsafe_function_call_js
在Native接口实现中,会临时返回空值或者promise对象给ArkTS应用侧,以避免应用侧主线程阻塞
C++子线程将会执行异步业务逻辑,并将处理结果写入上下文数据中。同时,调用napi_call_threadsafe_function将napi_threadsafe_function_call_js抛给EventLoop事件循环
在线程安全回调napi_threadsafe_function_call_js执行过程中,将会通过调用napi_call_function或者napi_resolve_deferred把异步处理结果反馈到ArkTS应用侧
93、下列哪些是加载动画API的配置项:()
正确答案:
container
renderer
path
autoplay
94、Harmony OS应用是能够在Harmony OS设备(例如,手机、平板等)上运行的应用程序,支持以下哪些形态()
正确答案:
需要下载安装的应用
轻量级,具备免安装,即用即走,服务直达,自由流转等关键特征的元服务
95、HarmonyOS SDK开放能力覆盖以下哪几种领域:()
正确答案:
应用框架、应用服务、系统、媒体、AI、图形
96、关于测试工具,以下说法正确的有:(全选)
正确答案:
单元测试框架(hypium)是HarmonyOS上的测试框架,提供测试用例编写、执行、结果显示能力,用于测试系统或应用接口。
UI测试框架是HarmonyOS应用界面测试框架,提供UI控件查找,点击,检视,按键注入等API并且支持跨设备测试。HarmonyOS应用开发者基于该测试框架可以编写和运行简洁可靠的UI自动化测试用例。
DevEco Testing是一款单机使用的专项测试工具,针对应用的开发和测试提供了相应的测试能力。DevEco Testing将测试能力以测试服务卡片形式的呈现给开发者和测试人员,可方便一键执行测试任务,并提供了测试报告和分析,辅助开发者和应用测试人员发现应用和产品问题,保障应用质量。
HarmonyOS应用云测平台,提供兼容性、安全、UX、性能、功耗、稳定性测试能力,支持流转、服务卡片等HarmonyOS关键特征自动化测试,支持华为1+8多设备运行,帮助开发者全方位看护APP基础质量。
97、在DevEco Studio配置签名信息时,需要上传哪些文件?()
正确答案:
密钥库文件.p12文件
签名文件.cer文件
Profile文件
98、关于自适应布局,以下说法正确的有:()
正确答案:
拉伸能力是指容器组件尺寸发生变化时,增加或减小的空间全部分配给容器组件内指定区域
占比能力是指子组件的宽高按照预设的比例,随父容器组件发生变化
延伸能力是指容器组件内的子组件,按照其在列表中的先后顺序,随容器组件尺寸变化显示或隐藏
99、以下哪些是自由流转体验(全选)
正确答案:
应用接续、服务互通、媒体播控、跨设备拖拽、跨设备剪切板
100、以下对应冷启动不同阶段的优化方法不正确的有()
正确答案:
缩短应用进程创建&初始化阶段耗时:延迟加载
缩短加载绘制首页阶段耗时:设置合适分辨率的startWindowIcon
101、关于DevEco Profiler性能调优,下列说法正确的是(全选)
正确答案:
Launch:主要用于分析应用/服务的启动耗时,分析启动周期各阶段的耗时情况、核心线程的运行情况等,协助开发者识别启动瓶颈。
Frame:主要用于深度分析应用/服务的卡顿丢帧原因。
Time:主要用于改进函数执行效率的分析,深度录制函数调用栈及每帧耗时等相关运行数据,并完整展现ArkTS到Native的跨语言调用栈,支撑Native API典型问题分析。
Allocation:主要用于应用/服务内存资源占用情况的分析,可深度采集内存相关数据,直观呈现不同分类的内存趋势,提供内存实例分配的调用栈记录,深入分析内存问题。
Snapshot:支持多次拍摄ArkTS堆内存快照,分析单个内存快照或多个内存快照之间的差异,定位ArkTS的内存问题。
CPU:通过深度采集CPU内核相关数据,直观地呈现出当前选择调优应用/服务进程的CPU使用率、CPU各核心时间片调度信息、CPU各核心频率信息、CPU各核心使用率信息、系统各进程的CPU使用情况、线程状态及Trace信息等。
102、以下哪些是HarmonyOS生态安全的内容:(全选)
正确答案:
开发者实名
设备受限调试
上架检测与审核
应用代码签名与加密
应用运行时保护与检测
103、DFX设计范围主要包含以下哪些:(全选)
正确答案:
HiLog日志,基础流水日志打印。
HiAppEvent应用事件,事件埋点接口,提供事件的埋点写入。
HiTrace Meter跟踪,提供追踪进程轨迹,进行程序性能分析。
HiTrace Chain调用链,提供业务流程调用链跟踪的维测接口。
104、应用图标需要分哪些层?()
正确答案:
前景层
背景层
105、应用通过华为账号授权登录后可以获取到的多种类型的账号信息,其中需要用户授权才能获取到的信息有( )
正确答案:
头像昵称
手机号码