HarmonyOS应用开发者高级认证

单选题

关于延迟任务描述正确的是 (D)

A. 适用于长时间运行在后台、用户可感知的任务,例如后台播放音乐、导航、设备连接等,使用长时任务避免应用进程被挂起
B. 适用于实时性要求高、耗时不长的任务,例如状态保存
C. 代理提醒是指应用退后台或进程终止后,系统会代理应用做相应的提醒。适用于定时提醒类业务,当前支持的提醒类型包括倒计时、日历和闹钟兰类
D. 对于实时性要求不高、可延迟执行的任务,系统提供了延迟任务,即满足条件的应用退至后台后被放入执行队列,系统会根据内存、功耗等统一调度

在申请定位相关权限时,如果应用只申请ohos.permission.APPROXIMATELYLOCATION权限,没有申请ohos.permission.LOCATION权限,会有以下哪个影响 (B)

A. 可以在后台获取位置
B. 获取到模糊位置,精确度为5公里
C. 获取到精准位置,精准度在米级别
D. 无法获取位置

关于相机分段式拍照,应用需要监听的出图接口是 (B)

A. on(‘pictureAssetAvailable’)
B. on(‘photoAssetAvailable’)
C. on(‘pictureAvailable’)
D. on(‘photoAvailable’)

以下哪个接口不是Web组件web_webview.WebDownloadltem接口的能力 (B)

A. getCurrentSpeed()
B. getUuid()
C. getPercentComplete()
D. getLastErrorCode()

以下关于应用架构技术选型说法不正确的是 (D)==存疑==

A. 元服务和应用可以共用一个代码工程,采用多目标产物构建方式,构建出应用和元服务两个产物,用于上架。
B. 对于初始版本的应用,功能比较简单,可以考虑采用单HAP加上多个HAR工程构建代码工程。
C. 随着业务的发展,应用功能会越来越多,某些功能可以做成动态加载,动态加载的模块采用HAR工程来构建,方便复用和共享。
D. 一些应用的扩展能力,比如备份、服务卡片,可以采用ExtensionAbility做成单独的feature HAP包,独立分发。

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

A. 将这3个ohpm库封装到har包中,并对外提供必要的接口。
B. 将某些特性做成按需加载模块,若这3个ohpm仅在按需加载模块里面使用,则将其打包在按需加载模块中。
C. 将3个ohpm库封装成1个hsp,并对外提供必要的接口。
D. 将3个ohpm库分别封装成3个hsp,并对外提供必要的接口。

以下关于动态import说法正确的是 (D)

A. 动态import不支持导入SDK的API,如@ohos.*
B. 动态import支持懒加载,所以不能用于提升页面的加载速度。
C. 动态import和静态import相比,灵活性更好,性能更好。
D. 动态import支持加载HSP模块、HAR模块、OHPM包、Native库

==关于自动化测试描述正确的是:==

A. Fuzz测试就是通过构造不规则的输入,从而触发程序的某种bug;Fuzz测试属于白盒测试。Fuzz测试也叫做模糊测试,通过输入非法字段,并观察软件是否异常来实现。一方面可以通过向软件输入非法字段,另一方面也可以通过向网络服务发送异常报文。
B. DT(开发者测试)就是UT,可看护的范围包括边界值问题、空指针或赋值错误,内部业务逻辑问题等等。
C. XTS子系统是认证测试套件的集合,当前包括acts(application compatibility test suite)应用兼容性测试套件,后续会拓展dcts(device compatibility test suite)设备兼容性测试套件等
D. 自动化测试因提高效率,减少重复工作的特性而被广泛采用;自动化测可以替代手动测试在处理复杂、难以预测的用户交互或特殊边界条件。

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

A. onScroll
B. onTouch
C. onAreaChange
D. aboutToReuse

当标记了@Reuseable的自定义组件实现了组件复用后,这个组件的复用范围是什么 (B)

A. 整个页面都可以复用
B. 标记了@Reuseable的自定义组件的父组件范围内
C. 整个应用内都可以复用
D. 标记了@Reuseable的自定义组件的外层容器节点范围内

应用开发时没有捕获JS异常,实现(A)的功能,可以捕获到这个异常

A. ErrorManager
B. hiDebug
C. hiTraceMeter
D. hiLog

HAR转HSP时,需要将HAR模块下的module.json5文件,修改type字段为 (A)

A. shared
B. static
C. service
D. services

以下哪个是应用全局的UI状态存储,是和应用的进程绑定的? (A)

A. AppStorage
B. PersistentStorage
C. Environment
D. LocalStorage

在短信应用UlAbility的onNewWant()回调中解析调用方传递过来的want参数,通过调用哪个方法获取Router对象,并进行指定页面的跳转? (B)

A. windowStage.Routers()
B. UIContext.getRouter()
C. windowStage.Router()
D. UlContext.getRouters()

小李正在使用DevEco Studio进行HarmonyOS应用的开发工作,他需要对一个频繁被调用的函数calculateData()进行重构,为了帮助小李高效地找到calculateData()函数的所有引用位置,并确保重构时考虑周全,以下哪个步骤是正确的使用DevEco Studio (D)

A. 小李应该在菜单栏中选择“Navigate”>“Class”来打开类浏览器,从中找到calculateData()函数,并在此界面中手动检查所有引用。
B. 小李应当在项目目录树中找到calculateData()函数所在的文件,直接双击打开文件,然后逐行扫描代码以手动查找该函数的所有调用位置。
C. 小李应将光标置于calculateData()函数的名称上,按下Ctrl+Shift+F(macOs为Command+ Shift+F)全局搜索该函数名,然后在搜索结果中筛选出真正的调用位置。
D. 小李只需将光标定位在calculateData()函数名上,右键点击并选择”Find Usages”,或者直接使用快捷键Att+F7(macOs为Option+F7),DevEco Studio会自动列出该函数在项目中的所有引用位置。

在HarmonyOS应用开发中,当开发者遇到需要分析Release版本应用的崩溃或异常堆栈信息时,为了准确地将堆栈追踪信息对应到源代码的具体位置,以下哪个描述是正确的做法或理解 (B) ==存疑==

A. 开发者需手动将Release构建生成的so文件与源代码进行映射,配合第三方工具进行堆栈信息,还原虽然过程繁琐,但最终能定位到问题代码位置
B. DevEco Studio提供的Release应用堆栈解析功能,要求开发者在遇到问题时,需上传构建产物中的特定文件(如so、source map、nameCache等)到指定工具或界面,借助这些文件辅助解析堆栈信息,实现从Release堆栈到源码的映射,便于快速定位问题
C. 因为Release应用经过优化和去除Debug信息,直接从堆跟踪到源代码行号是不可能的,开发者只能依靠日志信息手工推测问题所在
D. DevEco Studio通过集成的Release应用堆桟解析功能,自动利用构建时产生的so文件、source map文件、nameCache文件等,无需额外操作即可直接在Release应用中提供详细的源码级堆栈追踪信息

项目中包含多个模块和数千行代码。随着开发的深入,项目中的ArkTS源代码文件逐渐积累了大量import语句,其中不乏未使用的import以及不规范的排序情况,关于DevEco Studio的编辑器的“Optimize Imports”,以下说法正确的是 (B)

A. 应该手动遍历每个ArKTS文件,逐一检查并剔除未使用的import语句,然后按照字母顺序手动排序剩余的import。
B. 为了快速清理未使用的import,可以选中项目根目录,按下快捷键Ctrl+Alt+O(在macOS上为Control+Option+O),让DevEco Studio自动识别并移除所有未使用的import,并自动按照预设规则排序和合并import。
C. 在DevEco Studio中,没有直接的“Optimize Imports”功能,需要安装第三方插件来实现这个需求。
D. 可以在菜单栏中依次点击“Code”>“Reformat Code”来达到优化import的目的,因为“Optimize Imports”功能已整合进”Reformat Code”中,

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

A. 选中hap模块,点击通过菜单栏make module ‘hap’
B. 选中hsp模块,点击通过菜单栏make module ‘hsp’
C. 选中har模块,点击build菜单栏make module “har’
D. 选中har模块,点击build菜单栏build hap(s)

在开发HarmonyOS应用工程时:随着业务的发展,现在需要创建一个模块,关于在DevEco Studio中创建Module,下列选项哪种方式是错误的? (A)

A. 在hvigor目录下,单击鼠标右键,选择New>Module…,创建新的Module,此时module将创建在该文件目录下。
B. 鼠标移到工程目录顶部,单击鼠标右键,选择New>Module…,开始创建新的Module,此时该module将创建在工程根目录下。
C. 选中工程目录中任意文件,然后在菜单栏选择File>New>Module…,开始创建新的Module,此时该module将创建在工程根目录下。
D. 在工程根目录下创建一个新的Directory,可在该目录下单击鼠标右键,选择New>Module…,创建新的Module,此时module将创建在该文件目录下。

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

A. TransitlonEffect.OPACITY.combine(TransitionEffect.translate({x:100}).animation({duration:2000}))
B. TransitionEffect.asymmetric(TransitionEffect.OPACTY,animation({duration:2000}) TransitionEffecttranslate({x:100}).animation({duration: 2000}))
C. TransitionEffect.translate({x:100}).combine(TransitionEffect.OPACITY,animation({duration:2000}))
D. TransitionEffect.OPACITY.animation({duration:2000}).combine(TransitionEffect.translate({x:100}))

鼠标事件在AurkUI中的处理流程是 (D)

A. 直接转换为触摸事件处理
B. 不进行任何处理,直接传递给上层应用
C. 执行鼠标事件的碰撞测试和回调响应。
D. 先判断是否为左键事件,再决定是否转换为触摸事件处理

。。。代码 ()

A. 点击update2按钮后,显示的字符串会变化
B. 点击update1按钮后,显示的字符串会变化
C. 点击三个按钮,字符串都不会变化
D. 点击update3按钮后,显示的字符串会变化

在Stack布局中,如何设置子元素的对齐方式 (C)

A. 通过alignItems属性
B. 通过zIndex属性
C. 通过alignContent属性
D. 通过justifyContent属性

在ArkTS中抛出异常时,以下哪些做法可以提高编程性能 (A)

A. 避免频繁抛出异常
B. 避免处理promise异常
C. 避免在then中抛出异常
D. 避免在async函数中抛出异常

下面关于@Link修饰符描述错误的是 (A)

A. @Link装饰器可以在@Entny装饰的自定义组件中使用
B. 当装饰的数据类型为class或者Object时,可以观察到赋值和属性赋值的变化,即Object.keys(observedObject)返回的所有属性
C. @Link装饰的变量和其所属的自定义组件共享生命周期
D. @Link装饰的变量与其父组件中的数据源共享相同的值

==下列关于AurkUI状态管理的描述正确的是== ()

A. 在 ArkUI中,状态管理机制是指应用运行时状态变化带来的 UI 重新演染,且自定义组件变量经装饰器装饰成为状态变量后改变能引起 UI 渲染刷新
B. 在声明式 UI 编程框架中,应用运行时状态参数改变,UI 不一定会随之改变,且 UI 渲染仅在初始化时进行,与是否使用状态变量无关
C. State 是指将 build 方法内的 UI 描述和 @Builder 装饰的方法内的 UI 描述映射到界面,View(UI)是指驱动 UI 更新的数据
D. 在构建页面时,动态有交互的界面引入“状志”概念后,自定义组件的变量可直接引起 UI 渲染剧新无需装怖器装饰

使用Health Service Kit查询用户的实时三环数据,应调用下面哪个接口 (B)

A. healthStore.readData<T extends HealthSequence>(request: HealthSequenceReadRequest): Promise<T[])
B. healthService.workout,readActivityReport():Promise<ActivityReport>;
C. healthStore.aggregateData<T extends AggregateResult>(request: AggregateRequest): Promise<T[]>
D. healthStore.readData<T extends SamplePoint>(request: SamplePointReadRequest): Promise<T[]>

在使用AVPlayer作为播放器时,在onState播放器状态变化中,如果调用接口reset(),播放器会进入哪种状态 (B)

A. prepared
B. idle
C. playing
D. initialized

关于长时任务开发使用的接口是 (A)

A. 使用startBackgroundRunning申请任务,使用stopBackgroundRunning取消任务
B. 使用requestSuspendDelay申请任务,使用getRemainingDelayTime获取任务剩余时间
C. 使用startWork申请任务,使用stopWork取消任务,使用getWorkStatus获取任务状态
D. 使用publishReminder发布一个提醒类通知,使用cancelReminder取消一个指定的提醒类通知

==以下关于应用架构技术选型说法不正确的是== ()

A. 元服务和应用可以共用一个代码工程,采用多目标产物构建方式,构建出应用和元服务两个产物,用于上架。
B. 随着业务的发展,应用功能会越来越多,某些功能可以做成动态加载,动态加载的模块采用HAR工程来构建,方便复用和共享。
C. 一些应用的扩展能力,比如备份、服务卡片,可以采用ExtensionAbility做成单独的feature HAP包,独立分发。
D. 对于初始版本的应用,功能比较简单,可以考虑采用单HAP加上多个HAR工程构建代码工程。

==关于延迟任务描述正确的是== ()

A. 适用于长时间运行在后台、用户可感知的任务,例如后台播放音乐、导航、设备连接等,使用长时任务避免应用进程被挂起
B. 适用于实时性要求高、耗时不长的任务,例如状态保存
C. 代理提醒是指应用退后台或进程终止后,系统会代理应用做相应的提醒。适用于定时提醒类业务,当前支持的提醒类型包括倒计时、日历和闹钟三类
D. 对于实时性要求不高、可延迟执行的任务,系统提供了延迟任务,即满足条件的应用退至后台后被放入执行队列,系统会根据内存、功耗等统一调度

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

img
A. 在RouterModue中采用路由表方式解耦各个业务模块。
B. 采用静态import方式引入对应跳转的页面。
C. 可以采用Navigation作为页面导航根容器,将其放在entry中,其他Module的页面作为Navigation的子页面。
D. 采用RouterModule作为中介者并用动态import解耦各个业务模块。

关于代码门禁理解正确的是: (D) ==存疑,看文档是这个:文档1文档2==

A. 门禁级检查的范围和版本级检查的范围保持一致,尽可能多的在MR门禁阶段就拦截防护住问题,保障问题可以及时清理掉。
B. 标准 CI 构建是在代码合并后检查已提交代码的功能完整性,这种方法会导致代码合并到master后编译失败导致没有可用版本部署。通过提高滚动构建的频度就可以代替代码门禁,保障代码主干及时发现并解决问题。
C. 代码门禁是一项代码质量保障措施。目的是要求开发人员提交的代码必须满足一些要求才能合入代码仓库。门禁必须强制要求包括编译通过、单元测试覆盖率达标、代码静态检查无告警、全量功能测试用例、DFX专项测试都通过。
D. 代码门禁则是在代码合并之前就验证代码来保护主干分支的完整性。通过这种方式,可以保护主分支代码避免因合码导致的构建中断,以确保 master分支代码始终是可部署的,并且不会因明显的错误而影响到你正在并行开发的同事工作。

下述代码片段,使用了哪些基于web的性能优化手段 (B)

1
2
3
4
5
Web({ src: https://www.example.com', controller: this.controller })  
.onPageEnd((event)=>{
//...
this.controller.prefetchPage(https://www.example.com/nextpage”);
F)

A. 预连接
B. 预加载
C. 预渲染
D. 以上都有

关于AurkUI的ForEach和LazyForEach,下列说法错误的是? (B)

A. 当在滚动容器中使用了LazyForEach,框架会根据滚动容器可视区域按需创建组件,当组件滑出可视区域外时,框架会进行组件销毁回收以降低内存占用。
B. 长列表滚动场景,优先使用ForEach。
C. ForEach和LazyForEach会根据定义的键值生成规则为数据源的每个数组项生成唯一键值,并创建相应的组件。
D. LazyForEach需要配合cachedCount和组件复用一起使用,以达到性能的最优表现

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

A. name
B. triggerCondition
C. onReceive
D. onTrigger

应用发生崩溃,(D)接口可以获取到崩溃时调用栈

A. hiLog
B. hiTraceMeter
C. hiDebug
D. hiAppEvent

作为一个应用开发者,想搭建运维平台,想在应用内定时读取当前的内存信息,可以通过(B)接口来实现。

A. hiAppEvent
B. hiDebug
C. hichecker
D. hiLog

AppStorage在应用运行过程保留其属性,属性通过唯一的键值访问,键的类型是 (A)

A. string
B. boolean
C. Object
D. number

可以通过下面那个接口拉起导航类的垂域面板 (B)

A. startAbilityForResult
B. startAbilityByType
C. startAbility
D. startAbilityByCall

在开发应用之前,开发者需要了解应用的包结构,鸿蒙应用定义了多种包格式,以下说法错误的是 (D)

A. 每个HAP中的配置文件只声明自己HAP中的组件信息。
B. 以.app(多个HAP打包到一起)的形式上架。
C. HAP 可以独立编译、独立运行。
D. HSP 可以独立编译、独立运行

一个应用的功能比较复杂,需要使用ExtensionAbility组件,针对该应用的开发,下面说法错误的是 (B) ==存疑==

A. 可以采用多HAP(即一个entry包+多个feature包)来实现应用开发。
B. ExtensionAbility使用独立的HAP实现,可能会存在多个HAP引用相同的HAR,导致重复打包的问题,因此把所有的HAR都使用HSP代替。
C. 根据二八原则,非常用的功能,封装成HSP,做成按需加载的模块
D. 每个HAP中包含一个UIAbility组件或者一个ExtensionAbility组件。

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

A. HAR不支持引用AppScope目录中的资源。在编译构建时,AppScope中的内容不会打包到HAR中,因此会导致HAR资源引用失败。
B. HAR可以作为二方库和三方库提供给其他应用使用,如果需要对代码资产进行保护时,建议开启混淆能力。
C. HAR不支持在设备上单独安装/运行,只能作为应用模块的依赖项被引用。
D. HAR不支持使用page页面。

应用程序开发调试过程中,经常需要安装新应用进行调测,下面安装应用操作错误的是 (A)

A. bm install -p /data/app/
B. hdc install -p ohosapp.hap
C. bm install -p ohosapp.hap
D. bm install -p ohosapp.hap -r

开发者小李正在使用DevEco Studio开发一款面向HarmonyOS的应用,他需要使用鸿蒙的测试框架能力来确保应用质量,在编写测试框架代码时,关于测试框架的api能力说法正确的是 (A)

A. afterAll:在测试套内定义一个清理条件,在所有测试用例结束后执行且仅执行一次,支持一个参数:清理动作函数
B. it:定义一个测试套,支持三个参数:测试套名称,过滤参数和测试套函数
C. describe:采用业内通用语法,describe代表一条用例,支持两个参数:用例名称和用例函数
D. beforeAll: 在用例内定义一个预置条件,在所有测试用例开始前执行且仅执行一次,支持一个参数:预置动作函数

HarmonyOS应用开发团队正着手优化一款面向全球市场的在线教育应用,该应用在特定课程直播环节出现了性能波动和响应延迟的问题,严重影响用户体验。打算利用DevEcoProfiler来进行性能优化。DevEco Profiler其设计核心和主要优势是什么 (B)

A. DevEco Profiler主要是一个自动化修复工具,能自动检测并解决所有HarmonyOS应用的性能问题
B. DevEco Profiler依据Top-Down设计理念,通过高度整合的数据展示范式,提供从宏观到微观的性能数据分析,加速开发者定位和解决问题的过程
C. DevEco Profiler采用Bottom-Up设计原则,从底层代码细节开始逐步构建性能模型
D. DevEco Profiler专注于用户界面设计的美化,使开发者操作更为直观

开发者小张开发的项目希望可以增加一个卡片,用于呈现在设备桌面上,将应用的关键信息展示出来,在开发服务卡片时,以下说法正确的是? (C)

A. 配置上动态卡片与静态卡片的差别在于isDynamic参数。当isDynamic置空时,该卡片为静态卡片
B. 动态卡片支持自定义交互、动效、滑动等功能,功能丰富且内存占用较小。
C. 卡片的具体配置信息通常定义在resources/base/profile/目录下的form_config.json中。
D. 静态卡片内存占用较大,可实现静态信息展示、刷新和点击跳转。

开发者在编写ArkUI代码时,想要提前预览下所编写的组件的效果,下述哪个组件可以使用DevEco Studio Previewer正常预览? (C)

A. @Preview @Component struct ConsumeSample { @Consume name: string; build() { Text(this.name)} }
B. @Preview @Component struct LinkSample { @Link message: string; build() { Text(this.message) }}
C. @Preview @Component struct TitleSample { @StorageProp(‘title’) title: string = ‘PlaceHolder’; build() {Text(this.title)}}
D. import { add } from “libnative.so”; @Preview @Component struct NativeSample { count: number = add(1.2); build(){ Text(current count is ${this.count})}}

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

A. 双向预览不支持通过组件的属性面板实时修改属性或样式。
B. 选中预览器UI界面中的组件,则组件树上对应的组件将被选中,同时代码编辑器中的布局文件中对应的代码块高亮显示。
C. 选中布局文件中的代码块,则在UI界面会高亮显示,组件树上的组件节点也会呈现被选中的状态。
D. 选中组件树中的组件,则对应的代码块和UI界面也会高亮显示。

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

A. 继续运行应用,手动重启应用后检查布局是否符合预期
B. 使用模拟器替代真机进行调试,因为Hot Reload仅在模拟器上支持代码改动的即时生效
C. 在不关闭应用的情况下,直接修改代码并保存,借助Hot Reload功能在真机上实时查看布局调整的效果
D. 立即停止应用,修改代码后重新编译并部署到真机上

当您开始开发一个应用/服务时,首先需要根据工程创建向导,创建一个新的工程,工具会自动生成对应的代码和资源模板。关于新建工程,下列选项说法正确的是? (D)

A. 创建用于Lite Wearable设备的工程,可以选择Native C++工程模板。
B. 工程文件本地存储路径(Save location)允许包含中文字符。
C. 应用包名(Bundle name)必须为以点号(.)分隔的字符串,且至少包含三段,每段中仅允许使用英文字母、数字,如“com.example.myapplication”。
D. Compatible SDK是兼容的最低API Version。

如果要实现Row组件内的子元素均匀排列,且第一个元素与行首对齐,最后一个元素与行尾对齐,需要使用justifyContent的哪个枚举值 (C)

A. SpaceEvenly
B. Start
C. SpaceBetween
D. End

A. 使用clear方法将清除栈中的所有页面,并返回到根首页
B. 使用replacePath方法可以将栈顶页面替换成指定name的页面
C. 使用removeByIndexes方法可一次性删除多个页面
D. 使用getIndexByName方法可获取栈中第一个名为name的页面索引

==在AurkUI支持交互事件的场景中,以下关于按键事件数据流说法正确的是== ()

A. 不进行分发,直接丢弃
B. 直接分发给输入法处理
C. 仅分发给当前获焦的组件处理
D. 先分发给ArkUI框架,再分发给输入法,最后再次分发给ArkUI框架

以下哪个走焦算法是ArkUI焦点框架支持的默认走焦策略 (B)

A. 自定义走焦算法
B. 线性走焦算法
C. 环形走焦算法
D. 投影走焦算法

当将BuilderNode生成的内容嵌入到其它RenderNode中显示时,若不显式指定RenderOptions中的selfIdealSize,导致的后果是 (C)

A. 不会报错,但节点挂载失败
B. 编译或运行报错
C. BuilderNode中子树的根节点大小为默认值[0.0]
D. BuilderNode中子树的根节点大小沿用其父节点的尺寸

你是一名HarmonyOS应用开发人员,正在使用ArkTS进行开发。为了提高代码质量和可维护性,你决定利用DevEco Studio中的代码重构工具来优化现有代码。根据华为官方文档的指导,在以下哪种情况下最适合使用“提取方法(Extract Method)”重构功能? (A)

A. 当你需要将一段重复的代码片段转换为一个新的独立函数,以减少冗余并增强代码复用性时。
B. 当你需要调整变量的作用域,使它们仅在必要的地方可见时。
C. 当你想更改类名或函数名以更好地反映其功能,并确保所有引用自动更新时。
D. 当你想要合并多个类似的条件语句到一个更简洁的表达式中,以简化逻辑判断时。

Environment是AurkUI框架在应用程序启动时创建的单例对象,提供了读取系统某些环境变量的能力。下面哪个属性为Environment内置参数中字体大小比例 (D)

A. languageCode

B. colorMode

C. fontWeightScale

D. fontScale

调用getOAID需要申请什么权限 (A)

A. ohos.permission.APP_TRACKING_CONSENT

B. 不需要权限

C. hmos.permission.APP_TRACKING_CONSENT

D. ohos.permission.APP_TRACKING

以下哪个不是AREngine的核心功能 (A)

A. 语音识别

B. 环境理解

C. 运动跟踪

D. 渲染

可以通过哪个Web组件的接口加速JavaScript的执行性能? (B)

A. runJavaScriptExt

B. precompileJavaScript

C. registerJavaScriptProxy

D. runJavaScript

下面持续集成描述哪项是错误的: (A)

A. 持续集成就是持续编译,二者异曲同工

B. 持续集成在大型项目(有几十个项目组)也能应用,即便是项目组开发进度不统一也没问题

C. 持续集成(CI,Continuous Intergation):指频繁的,一天多次将代码集成到主干。

D. Martin Fower说过,”持续集成并不能消除Bug,而是让它们非常容易发现和改正。

以下代码最合适的性能优化方案为 (B)

1
2
3
4
5
Button('文件上传')  
.onClick(0) =>{
// 上传20个文件
this.doFileUploadSync();
})

A. 使用promise优化

B. 使用taskpool优化

C. 保持不变

D. 使用setTimeout优化

以下哪个对象为UIAbility组件提供了事件机制,使它们能够进行订阅、取消订阅和触发事件等数据通信能力? (D)

A. Context

B. events

C. Want

D. EventHub

AppStorage支持应用的哪个线程内多个UIAbility实例间的状态共享 (A)

A. 主线程

B. Worker线程

C. 所有线程

D. Task线程

在UI中通过哪个方法触发自定义事件,在触发事件的同时,根据需要传入参数信息 (D)

A. eventHub.sends()

B. eventHub.send()

C. eventHub.emits()

D. eventHub.emit()

在编译构建HAP时,会从HAP模块及依赖的模块中收集资源文件,如果不同模块下的资源文件出现重名冲突时,会按照优先级进行覆盖,现在有一个HAP依赖了两个HAR,依赖配置如下所示: (A)

1
2
3
4
5
6
7
// oh-package.json5  
{
"dependencies": {
"dayjs": "^1.10.4",
"lottie": "^2.0.0"
}
}

在资源覆盖时,以下优先级排序正确的是()

A. AppScope>HAP包自身模块>dayjs模块>lottie模块

B. HAP包自身模块>lottie模块>dayjs模块>AppScope

C. AppScope>HAP包自身模块>lottie模块>dayjs模块

D. HAP包自身模块>dayjs模块>lottie模块>AppScope

开发者小李遇到了一个复杂的问题,该问题仅在特定的代码执行路径上出现,且难以复现。他使用的是C++进行核心算法开发,代码的逻辑密集且对性能要求极高,DevEco Studio为C/C++开发者提供的高级调试能力,以下哪个能力可以帮助小李查看代码历史执行路径,回溯到关键的变量状态 (A)

A. 反向调试能力:允许开发者在调试过程中回退回到之前的代码行或断点,不仅查看过去的堆信息,还能重现历史的全局、静态和局部变量状态,帮助深入理解代码历史行为,特别是对于复杂逻辑和难以复现的bug定位至关重要

B. 实时代码修改与运行时效果查看:支持在调试过程中修改代码并立即查看修改效果,适用于快速迭代,但不聚焦于问题追溯

C. 代码静态分析:提供静态代码检查工具,通过语法和逻辑分析帮助预防潜在错误,但不涉及运行时问题定位

D. 传统调试模式:仅允许在当前断点暂停代码执行,查看调用堆栈和当前变量信息,但无法追溯历史执行状态

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

D. Params

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

1
2
3
4
5
6
7
8
9
10
11
12
import AbilityStage from ‘@ohos.app.ability.AbilityStage’;  
import type Want from ‘@ohos.app.ability.Want’;
export default class MyAbilityStage extends AbilityStage {
this.instanceIndex = 0;
onAcceptWant(want: Want):string {
if(want.abilityName === ‘UIAbilityA’){
if(want.parameters && want.parameters.instanceKey === ‘test’){
return test instance + this.instanceIndex++;
} else {

依次调用如下方法4次启动UIAbilityA,value分别是"test"“test”“testA”“testA”,则当前运行期UIAbiLifunction testSpecified(context, value){
let want: Want ={

D. 3个

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

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

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

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

下面的配置存在有几处错误()

app.json5配置文件:

1
2
3
4
5
6
7
8
9
10
11
{  
"app": {
"bundleName": "com.example.myapplication",
"vendor": "example",
"versionCode": 1000000,
"versionName": "1.0.2",
"icon": "media:appicon" ,
"label":"string:app_name",
"bundleType": "app"
}
}

module.json5配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
{  
"module": {
"name": "feature",
//
"atomicService": {
"preloads":[
{
"moduleName":"feature"
}
]
}
}
}

D.2

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

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

项目需要为不同的设备形态(如手机、智能手表)提供定制化构建。请说明如何在DevEco studio中设置不同的构建配置,以生成针对不同设备的nap包? ()

D.在模块级别build-profile.json5定义多个target在每个target的config/deviceType中定义不同的设备类型

在开发HarmonyOS应用工程时,随着业务的发展,现在需要创建一个模块,关于在 DevEco Studio中创建Module,下列选项哪种方式是错误的? ()

B.在hvigor目录下,单击鼠标右键,选择New>Module…,创建新的Module,此时module将创建在该文件目录下。

小李正在使用DevEco Studio进行Harmony0S应用的开发工作,他需要对一个频繁被调用的函数calculateData()进行重构,为了帮助小李高效地找到calculateData()函数的所有引用位置,并确保重构时考虑周全,以下哪个步骤是正确的使用DevEco Studio的“Find Usages”功能的操作方法 ()

D.小李只需将光标定位在calculateData(函数名上,右键点击并选择“Find Usages”,或者直接使用快捷键Alt+ F7(macOS为Option+F7),DevEco Studio会自动列出该函数在项目中的所有引用位直。

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

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

在使用DevEco Studio的Profiler进行Harmony0S应用或服务性能分析时,面对应用出现卡顿、加载慢等性能瓶颈问题,以下哪个描述最贴切地说明了“Time场景分析任务”的功能及其对开发者优化流程的帮助 ()

A.Time场景分析任务展示热点区域内的CPU和进程级调用栈耗时情况,支持代码跳转,助力开发者快速定位并优化耗时较长的代码段

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

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

开发者开发了一个应用,该应用只有一个hap包,其module.ison5中abilities的配置如下所示,包含1个UIAbility(无Web组件)、1个FormExtensionAbility组件、1个WorkSchedulerExtensionAbility组件,那么该应用在运行过程中, ()

最多会存在几个应用进程,

1
2
3
4
5
6
7
8
9
10
11
abilities":[  
{
“EntryAbility”“name”
“./etc/entryability/Entr"srcEntry’
“$string:EntryAbility"description”
“exported”:ture
extensionAbilities”:
“ClockFormExtensionAbility’“name”:
“srcEntrance”:”./ets/form/ClockHormE
“type”:" form"
“name”:"TipWorkSchedulerExtensionAbi

C.3个

ArkTS支持以下哪些函数 ()

B.object.keys();

可以通过下面那个接口拉起导航类的垂域面板. ()

D. startAbilityByType

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

A.HAR不支持使用page页面

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

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

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

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

项目需要为不同的设备形态(如手机、智能手表)提供定制化构建。请说明如何在DevEco studio中设置不同的构建配置,以生成针对不同设备的hap包? ()

D.在模块级别build-profile.json5定义多个target在每个target的config/deviceType中定义不同的设备类型

在开发HarmonyOS应用工程时,随着业务的发展,现在需要创建一个模块,关于在 DevEco Studio中创建Module,下列选项哪种方式是错误的? ()

B.在hvigor目录下,单击鼠标右键,选择New>Module…,创建新的Module,此时module将创建在该文件目录下。

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

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

项目中包含多个模块和数千行代码。随着开发的深入,项目中的ArkTS源代码文件逐渐积累了大量import语句,其中不乏未使用的import以及不规范的排序情况,关于DevEco studio的编辑器的“optimize Imports”,以下说法正确的是 ()

C可以在菜单栏中依次点击“Code”>“ReformatCode”来达到优化import的目的,因为“Optimizelmports”功能已整合进“Reformat Code”中。

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

D.ToastShowMode,TOP MOAST

为了使isShow参数值与半模态界面的状态同步,可以使用下列那种方式双向绑定参数? ()

D.

1
2
3
4
5
6
7
8
9
10
11
12
Column() {  
Button(“transition modal 1”)
.onClick(() => {
this.isShow = true
})
.fontSize(20)
.margin(10)
.bindSheet($$this.isShow, this.myBuilder(), {height: this.sheetHeight, dragBar: this.showDragBar, backgroundColor: Color.Green, onAppear: () => {console.log(“BindSheet onAppear.”)}, onDisappear: () => {console.log(“BindSheet onDisappear.”)}})
}
.justifyContent(FlexAlign.Center)
.width(‘100%’)
.height(‘100%’)

在方舟字节码的函数调用规范中,前三个参数表示的含义分别是 ()

B. 函数对象本身、new.Target、this

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

A.8位操作码,16位立即数,16位id,8位立即数

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

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

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

下面关于方舟字节码格式IMM16_ID16_IMM8描述正确的是 ()

C.8位操作码,16位立即数,16位id,8位立即数

以下关于垂直滚动Grid组件使用cachedcount属性的说明正确的是 ()

D.设置cachedCount为1,则Grid在显示范围上下各缓存1个Gridltem

以下示例代码中可以进行动画的属性有哪些? ()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
struct MyComponent {  
@State compwidth: number = 100;
@State compHeight: number = 100;
@State compRadius: number = 32;

build() {
Column() {
}
.backgroundColor("#ffcb3b3b")
.width(this.compwidth) //1
.height(this.compHeight) // 2
.animation({ curve: Curve.Ease, duration: 200 })
.borderRadius(this.compRadius) //3
.onClick(() => {
this.compwidth += 10;
this.compHeight += 10;
this.compRadius += 4;
showToast(`宽度${this.compwidth}`+`高度${this.compHeight}`+`圆角${this.compRadius}`)
})
}
}

B. 1、2、3

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

D. Object.values();

以下哪个装饰器用来表示并发共享对象。 ()

D. @Sendable

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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()

D a2

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

1
2
3
4
Button("C")  
.onClick(() => {
this.nameList[0].name = "Jim";
})

开发者张工想要高效地管理Harmony0S设备中的文件,包括查看文件列表、进行文件搜索、新建及删除操作,以及在设备与PC间传输文件,而无需使用命令行工具。以下哪个选项最能准确概括张工能通过哪个工具直接在DevEco Studio界面完成上述所有操作 ()

B.DevEco Studio的Device File Browser

在使用DevEco Studio进行混合语言开发时,开发者小李通过Napi引用了Native 接口的文件(例如d.ts文件)。他想要直接从这些接口跳转到其对应的C/C++函数实现处进行代码审查。请从以下选项中选择最合适的操作步骤来帮助小李实现这一目标 ()

B.在声明或引用了Native接口的文件中,比如d.ts文件,小李可以直接选中接口名称,右键点击并在弹出的菜单中选择“Go To>Implementation(s)”(转到>实现)。还可以使用快捷键Ctrl+Alt+B;如果是macOS用户,则使用Command+Option+B,直接跳转到对应的C/C++函数实现位置。

下面持续集成描述哪项是错误的: ()

C.持续集成就是持续编译,二者异曲同工

ArkUI组件复用的作用机制是减少了什么时间从而降低了丢帧率? ()

C.组件节点和对象的创建时间

以下哪个装饰器用来表示并发共享对象 (D)

A @Shared

B @State

C @Style

D @Sendable

以下关于Taskpool和Worker的描述正确的是 (C)

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

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

C TaskPool支持任务延时执行

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

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

A Object.isExtensible();

B Object.isPrototypeOf();

C Object.getOwnPropertySymbols();

D Object.keys();

以下哪些赋值语句在ArkTS中是合法 (A)

1
2
3
4
5
6
class C{}  

let value1:number=null;
let value2:string|null=null;
let value3:string|undefined=null;
let value4:C=null

A value2

B value3

C value1

D value4

多选题

网络管理模块主要提供以下功能 (BCDEF)

A. VoIP管理:管理VoIP的连接及状态等【不确定,AI回答是包括】

B. HTTP数据请求:通过HTTP发起一个数据请求

C. WebSocket连接:使用WebSocket建立服务器与客户端的双向连接

D. MDNS管理:MDNS即多播DNS(Multicast DNS),提供局域网内的本地服务添加、移除、发现、解析等能力

E. Socket连接:通过Socket进行数据传输

F. 网络连接管理:网络连接管理提供管理网络一些基础能力,包括WiFi/蜂窝/Ethernet等多网络连接优先级管理、网络质量评估、订阅默认/指定网络连接状态变化、查询网络连接信息、DNS解析等功能

A. Navigation的页面显示模式有单页面、分栏和自适应三种显示模式

B. Navigation的子页面可以来自不同的Modude

C. Navigation只能在entry类型的Module中使用

D. Navigation子页面的根容减可以来用如Column,Row这些容器组件。

下列关于预渲染描述正确的是 (BD)

A. 预渲染适用于中高概率被使用的Web页面

B. 预渲染有额外的网络连接、下载、存储和渲染消耗

C. 预渲染适用于所有页面

D. 预渲染能实现页面”秒开”效果,将页面加载时延降到最低

已经使用Web组件打开网页后,切换到后台不显示时,可以调用哪些方法优化其资源占用 (ABCD) ==存疑==

A. pauseAllMedia暂停网页所有音视频播放

B. onlnactive通知ArkWeb组件进入未激活状态

C. pauseAllTimers暂停所有ArkWeb的定时器

D. terminateRenderProcess销毁渲染子进程

应用程序包可以通过以下哪些方式进行更新? (BC)

A. 配置文件

B. 应用内检测升级

C. 应用市场内更新

D. 资源

在应用开发中,部分代码和资源被重复引用和编译构建,可以新建什么模块来实现代码和资源的共享? (CD)

A. HAP

B. APK

C. HAR

D. HSP

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

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

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

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

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

下面关于动态import描述正确的是 (BD)

A. 动态导入import()是个异步接口,调用后将返回一个promise

B. HAR模块间只有变量动态import时可以进行模块解耦

C. 常量动态import也必须配置runtimeOnly选项

D. 动态import根据入参是否为常量字符串分为常量动态import和变量动态import两种

AppStorage是应用全局的UI状态存储,如果要建立AppStorage和自定义组件的联系需要通过哪些装饰器实现 (AC)

A. @StorageProp

B. @LocalStorageProp

C. @StorageLink

D. @LocalStorageLink

ArkTS函数在编码时,以下哪些做法可以提高编程性能 (BC)

A. 使用 async 修饰符

B. 避免使用可选参数

C. 使用参数传递函数外的变量来替代使用闭包

D. 使用箭头函数

应用开发的有些场景中,如果希望根据条件导入模块或者按需导入模块,可以使用动态导入代替静态导入,下面导入场景中适合使用动态import的是 (ABCD)

A. 当被导入的模块,在加载时并不存在,需要异步获取。

B. 当被导入的模块说明符,需要动态构建。

C. 当静态导入的模块很明显的降低了代码的加载速度且被使用的可能性很低,或者并不需要马上使用它。

D. 当静态导入的模块很明显的占用了大量的系统内存且被使用的可能性很低。

下面关于混淆规则描述正确的是 (BD)

A. -enable-property-obfuscation:开启顶层作用城名称混港

B. -enable-export-obfuscation:开启直接导入或导出的类或对象的名称和属性名混淆

C. -enable-toplevel-obfuscation:并启属性混淆

D. -disable-obfuscation:关团所有混淆

关于@LocalBuilder装饰器的参数传递方式,下列说法正确的是 (BCD)

A. 参数的类型可以是undefined或null

B. 默认情况下,@LocalBuilder函数的参数按值传递

C. 按引用传递的参数需要直接传入对象字面量

D. 按引用传递,且传递的参数为状态变量时,状态变量的改变会引起@LocalBuilder方法内的UI刷新

下列哪些是Performance Analysis Kit(性能分析服务)为开发者提供的能力 (ACDE)

A. HiAppEvent应用事件

B. AGC崩溃服务

C. FaultLogger故障日志管理

D. HiTraceMeter和HiTraceChain跟踪

E. HiLog流水日志

应用要通过Health Service Kit查询用户的跑步记录,展示用户的跑步轨迹。下面关于数据权限申请说法正确的是 (BC)

A. 申请Health Service Kit服务时,应用需申请锻炼记录概要、锻炼记录详情数据的读权限

B. 申请Health Service Kit服务时,应用需申请锻炼记录概要、锻炼记录详情数据、锻炼记录位置详情效据的读权展

C. 调用requestAuthorizations申请用户授权时,在AuthorizationRequest的readDataTypes中传入锻炼记录数据类型

D. 调用requestAuthorizations申请用户授权时,在AuthorizationRequest的writeDataTypes中传入锻炼记录数据类型

1
2
3
4
5
6
7
8
Column() {  
Column() {...}
.visibility(...)
Column() {...}
.visibility(...)
//此处省路20个同上配置的Column
...
}

以上代码使用了显隐控制替代if-else进行优化,避免了节点频繁上下树,但是通常有可能引入的新性能问题有 (ABCD)

A. 滑动场录,丢帧卡顿

B. 滑动场景,白块

C. 转场场景,响应时延过大

D. 转场场景,完成时延过大

以下哪些方式可以实现ArkWeb同层渲染能力 ()

A.

1
2
Web(...).enableNativeEmbedMode(true)  
<object id="view" type="native/contents" width="100%" height="100%" style="background-color:red"/>

B.

1
2
Web(...).enableNativeEmbedMode(true)  
<embed id="view" type="native/contents" width="100%" height="100%" style="background-color:red"/>

C.

1
2
Web(...).enableNativeEmbedMode(true).registerNativeEmbedRule("object", "test")  
<object id="view" type="test/contents" width="100%" height="100%" style="background-color:red"/>

D.

1
2
Web(...).enableNativeEmbedMode(true).registerNativeEmbedRule("native", "test")  
<object id="view" type="native/contents" width="100%" height="100%" style="background-color:red"/>

hiAppEvent提供的(addWatcher)接口,可以用于获取崩溃信息

A. write

B. addWatcher

C. configure

D. clear

hiAppEvent提供的Watcher接口,订阅到的系统事件,哪些包含HiLog日志? (AB)

A. 卡死事件

B. 崩溃事件

C. CPU高负载事件

D. 启动耗时事件

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

A. 应用启动时

B. createPurchase调求返回1001860001-内部错读时

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

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

多个HAP/HSP共用的代码和资源放在同一个HSP中,可以提高代码和资源的作用有 (AC)

A. 可维护性

B. 可多态性

C. 可重用性

D. 可独立性

项目组开发的HarmonyOS应用工程,为了保护hap代码资产,如何在DevEco Studio中启用混淆的功能,并设置相应的混淆规则 (AD)

A. release模式下将buildOption/arkOptions/ruleOptions/enable设置为true

B. release模式下将buildOption/arkOptions/ruleOptions/enable设置为false

C. 在混淆规则配置文件consumer-rules.txt中进行混淆规则的配置

D. 在混淆规则配置文件obfuscation-rules.txt中进行混淆规则的配置

==下列关于@Builder自定义构建函数的说法正确的是== ()

A. @Builder通过按值方式传递参数,当传递的参数为状态变量时,状态变量的改变会引起@Builder方法内的UI刷新

B. @Builder可以装饰自定义组件内的私有函数,也可以装饰全局函数

C. @Builder通过按引用的方式传递参数,当传递的参数为状态变量时,状态变量的改变会引起@Builder方法内的UI刷新

D. 允许在@Builder装饰的函数内部修改参数值

以下关于ArkUI线性布局中子元素在交叉轴上的对齐方式的描述错误的是 ()

A. alignSelf属性的优先级低于alignltems属性

B. Row容器内子元素可以使用HorizontalAlign进行交叉轴上的对齐

C. alignItems属性用于设置所有子元素在交叉轴上的对齐方式

D. Column容器内子元素可以使用VerticalAlign进行交叉轴上的对齐

==以下关于ArkUI触控事件的描述,正确的是== ()

A. ArkUI触控事件,根据输入源不同,主要划分为touch类与mouse类。

B. 使用hitTestBehavior设置组件的触摸测试类型,当HitTestMode为Default时,自身如果命中会阻塞兄弟组件与子组件。

C. hitTestBehavior可以由InterceptTouch事件进行变更。

D. TouchTest为触摸测试入口方法,触摸热区/禁用控制等不满足组件事件交互诉求,会导致立即返回父节点。

ArkTS中不能使用以下哪些类型, (ABD)

A. unknown

B. any

C. union type

D. tuple type

==ArkTS是鸿蒙生态的应用开发语言。下列说法正确的是== ()

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

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

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

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

以下关于Taskpool和Worker的描述正确的是 (ABD)

A. Worker的任务执行时长上限是无限制
B. TaskPool支持设置任务的优先级
C. TaskPool不支持线程复用
D. Worker支持取消己发起的任务

ArkTS是鸿蒙生态的应用开发语言。以下哪些选项是ArkTS的设计理念, (BCD)

A. ArkTS不支持null-satety特性。
B. ArkTS保留了TS大部分的语法特性,帮助开发者更容易上手ArkTS。
C. 通过规范强化静态检查和分析,减少运行时的类型检查,从而降低了运行时负载,提升执行性能。
D. 通过规范强化静态检查和分析,使得许多错误在编译时可以被检测出来,降低代码运行错误的风险

==下面关于ArkTS中export用法,正确的是== ()

A. export { exporti as alias1 } from “ets file name”

B. export * as name from “ets file name’

C. export { export1 } from “ets file name

D. export * from “ets file name’

通过@ohos.net.http或@hms.collaboration.rcp.d.ts发起HTTP/HTTPS网络请求时,如果请求的数据大小在10M左右,可以使用如下哪种API? (ABCD)

A. http#HttpRequest.requestinStream

B. rcp#Session.get

C. http#HttpRequest.request

D. rcp#Session.fetch

游戏服务API支持哪些能力 (ABCD)

A. 游戏官方登录

B. 合规校验

C. 华为账号快速登录

D. 游戏资产转移

使用组件复用之后,还是没有显著提升列表滑动场景的性能,属于组件复用未生效可能的原因有? (ABCD)==存疑==

A. 复用的自定义组件中使用if等条件渲染语句导致结构不相同,未使用reuseId标记
B. 页面嵌套了过多自定义组件
C. 在aboutToReuse回调函数中更新了冗余的状态变量
D. 没有在aboutToReuse更新关联的状态变量数据

==hiAppEvent提供的Watcher接口,订阅到的系统事件,哪些包含HiLog日志?== ()

A. 启动耗时事件
B. 崩溃事件
C. CPU高负载事件
D. 卡死事件

EventHub为UIAbility组件提供了事件机制,使它们能够进行以下哪些数据通信能力? (ABC)

A. 触发事件

B. 取消订阅事件

C. 订阅事件

D. 广播事件

一个应用通常会包含多种功能,将不同的功能特性按模块来划分和管理是一种良好的设计方式。在开发过程中,我们可以将每个功能模块作为一个独立的Module进行开发,下面关于Module的说法正确的是 (ABCD)

A. Ability类型的Module,用于实现应用的功能和特性,有两种类型,分别为entry和feature。

B. feature类型的Module,应用的动态特性模块,一个应用中可以包含一个或多个feature类型的模块,也可以不包

C. Librany类型的Module,用于实现代码和资源的共享,有两种类型,分别为Static Library和Shared Library两种类型。

D. entry类型的Module,是应用的主模块,一个应用只能包含唯一一个entry类型的HAP。

在使用DevEco Studio进行HarmonyOS应用开发和调试过程中,开发者小张遇到应用运行时意外终止的情况,他需要快速定位并解决导致应用崩溃的问题。以下哪些做法可以帮助小张有效分析和处理这些问题 (ABCD)

A. 若遇到App运行卡顿或系统整体无响应(App Freeze,System Freeze)的情况,可以通过性能分析工具中的Frame Insight和Allocation Insight功能,分析应用的资源消耗情况,寻找可能的瓶颈

B. 查看DevEco Studio log工具栏输出的错误日志,根据日志提示分析应用崩溃的具体原因及代码位置

C. 当怀疑问题是由于C++代码中的内存错误(如数组越界、内存泄露、重复释放内存)引起时,进入“Run/Debug Configurations”设置界面,勾选启用Address Sanitizer(ASan),然后重新部署应用进行测试以获取更详细的内存问题报告

D. 利用系统自动生成的FaultLog,包括App Freeze、CPP Crash、JS Crash、System Freeze和ASan报告,这些报告会详细记录故障发生时的环境、堆信息和可能的故障原因,是排查问题的重要参考

以下代码片段哪几个cass/interface违反了ArkTS语法规范: (AB)

1
2
3
4
5
6
7
8
9
10
11
cass Person {}  

dass Student extends Person {}

dass instructor implements Person {}

interface Shape {}

interface Circle implements Shape {}

class Square implements Shape {}

A. Circle

B. Instructor

C. Square

D. Student

以下哪些关于私有@Builder方法的描述是正确的 (ACD)

A. 在私有@Builder方法中可以访问组件状态变量

B. 私有@Builder方法可以在其他组件中直接调用

C. 私有@Builder方法内的UI语法需要遵循UI语法规则

D. 私有@Builder方法通过this.builder()调用

下列关于@ObservedV2装饰器的说法正确的是 (AD)

A. 装饰器装饰class,使得被装饰的class具有深度监听的能力

B. 可用于组件间状态同步

C. 单独使用即可实现深度观测

D. @Trace配合使用可以使class中的属性具有深度观测的能力

状态管理V1的功能包括 (AC)

A. $$运算符使TS变量和内置组件内部状态同步

B. 支持属性级精准更新

C. @Watch用于监听状态变量变化

D. 深度观察对象属性变化

下面关于混淆规则描述正确的是 (AB)

A. -keep-file-name [,identifiers,…]:指定要保留的文件/文件夹的名称

B. -print-namecache filepath:将名称缓存保存到指定的文件路径。

C. -keep-global-name[,identifiers,…]:指定想保留的属性名

D. -keep-property-name[,identifiers,…]:指定要保留的顶层作用域的名称

哪些是持续部署最佳实践? ()

A. 灰度发布:先在小部分用户或区域进行部署,观察没问题后再全面推广

B. 监控和回滚机制:实时监控部署后的应用状态,如有问题及时回滚,

C. 环境一致性:保持开发、测试、生产等环境的高度一致性。

D. 自动化部署流程:从代码提交到部署的整个流程应尽可能自动化。

哪些是持续集成最佳实践? ()

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

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

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

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

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