鸿蒙高级开发者认证2024-2

1,589 阅读10分钟

app.json5配置错误的是 (AD)

A.

{
  "app": {
    "bundleName": "com.example.myapplication",
    "vendor": "example",
    "versionCode": 1000000,
    "versionName": "1.0.2",
    "icon": "$media:app_icon",
    "label": "app_name",
    "bundleType": "app"
  }
}

B.

{
"app": {
  "bundleName": "com.example.myapplication",
  "vendor": "example",
  "versionCode": 1000000,
  "versionName": "1.0.2",
  "icon": "$media:app_icon",
  "label": "$string:app_name"
}}

C.

{
  "app": {
    "bundleName": "com.example.myapplication",
    "vendor": "example",
    "versionCode": 1000000,
    "versionName": "1.0.2",
    "icon": "$media:app_icon",
    "label": "$string:app_name",
    "bundleType": "app"
  }
}

D.

{
  "app": {
    "bundleName": "com.example.myapplication",
    "vendor": "example",
    "versionCode": 1000000,
    "icon": "$media:app_icon",
    "label": "$string:app_name",
    "bundleType": "app"
  }
}

ArkTS中,哪些属性声明是正确的:

class C {
  value1: number = 0;
  value2?: number = null;
  value3: number | undefined = undefined;
  value4?: number;
}

value1,value3,value4 (?表示undefined,null不允许被赋值为undefined)

当前动态import支持导入的模块类型有哪些? (ABCD)

A.动态import支持加载HSP模块

B.动态import支持加载远程HAR模块

C.动态import支持加载OHPM模块

D.动态import支持加载本地HAR模块

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

A.TaskPool支持任务延时执行

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

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

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

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

A.通过规范强化静态检查和分析,减少运行时的类型检查,从而降低了运行时负载,提升执行性能。

B. ArkTS不支持null-satety特性。

C.通过规范强化静态检查和分析,使得许多错误在编译时可以被检测出来,降低代码运行错误的风险。

D. ArkTS保留了TS大部分的语法特性, 帮助开发者更容易上手ArkTS。

为了加快构建速度,提高开发效率,可以如何调整hvigor配置,从而优化构建速度 ACD

A. 启用hvigor的parallel, 在增量场景下进行并行编译处理

B. 启用hvigor的typeCheck, 在增量场景下进行对hvigorfile. ts进行类型检查

C. 启用hvigor的incremental, 在增量场景下检查任务是否可以跳过

D. 启动hvigor的daemon模式, 在增量场景下复用缓存

依次点击A,B,C,D 四个按钮,不会触发UI刷新的是 (AB)

@Entry
@Component
struct FormatMe{
  @State count:number = 0;
  @State @Watch('onValueChange') value:number = 50;

  onValueChange(){
    this.count = this.value;
  }

  build() {
    Column(){
      Text(`${this.count}`)
      Button('A').onClick(()=>{
        this.count = 0;
      })

      Button('B').onClick(()=>{
        for (let i = 0 ;i < 1000; i ++){
          this.count = i;
        }
        for (let i = 1000 ;i > 0; i --){
          this.count = i;
        }
        this.count --;
      })

      Button('C').onClick(()=>{
        this.value = 100;
      })

      Button('D').onClick(()=>{
        setInterval(()=>{
          this.count ++;
        },1000)
      })
    }
  }
}

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

A string

B arrayBuffer

C map<string,string>

D record<string,string>

开发者小李正在使用DevEco Studio开发一款面向Harmony0S的应用, 该应用需要在多种设备上表现出一致的稳定性和优秀的用户体验。为了确保高质量的发布,小李意识到需要实施一套全面的测试策略,覆盖代码的自动化测试和手动测试,还需要衡量代码的测试覆盖率,以确定测试的充分性。在DevEco Studio的测试框架下, 以下描述中, 哪些是正确的

(ABCD)

A. 无论选择Instrument Test还是Local Test, DevEco Studio均内置了详尽的测试报告功能, 实时显示测试进度, 且直接在IDE中可查看代码覆盖率报告,无需外部工具。

B. Instrument Test: 测试用例存储于项目的ohosTest目录, 要求在HarmonyOS设备或模拟器上执行, 兼容ArkTS与JS语言编写。

C. Local Test: 测试用例位于test目录, 无需设备或模拟器环境, 直接在本地执行, 专注于ArkTS语言, 推荐适用于API版本11及以上的Hvigor工程, 目前特别限于Stage模型, 并不涵盖C/C++方法。

D.DevEco Studio的测试框架提供测试用例执行能力,包含基础接口以编写和输出测试结果,鼓励用户创建易于维护的自动化测试脚本,并且统计代码覆盖率。

Navigation组件是路由导航的根视图容器, 一般作为Page页面的根容器使用, 以下关于Navigation 组件说法正确的是(AD)

A. Navigation的子页面可以来自不同的Module

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

C. Navigation子页面的根容器可以采用如Column、Row这些容器组件。

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

以下A到G选项,哪些是持续部署最佳实践?(BEFG)

A.手工配置管理:

1、直接修改生产环境上的配置来改变系统配置

2、集群中各节点的行为有所不同;

3、靠人手工恢复环境。手动记载配置包括操作系统、应用服务器、关系型数据库管理系统、Web服务器或其他基础设施设置。

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

C:开发完成之后再向类生产环境部署:当软件被第一次部署到类生产环境(比如试运行环境)时,就是大部分开发工作完成时,至少是开发团队认为“该软件开发完成了”。

D:手工部署:持续部署可以采用手工部署的方式发布软件:

1、有一份非常详尽的文档,该文档描述了执行步骤及每个步骤中易出错的地方;

2、以手工测试来确认该应用程序是否运行正确;

3、在发布时,常常会修正一些在发布过程中发现的问题。

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

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

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

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

A没有在aboutToReuse更新关联的状态变量数据。

B复用的自定义组件中使用if等条件渲染语句导致结构不相同,未使用reuseld标记。

C页面嵌套了过多自定义组件。

D在aboutToReuse回调函数中更新了冗余的状态变量

下面代码符合ArkTs编程规范的是(BC)

A

for(let idx = 0;idx < 5 ; idx ++){
  console.log(idx)
}

B

if( 1 == 1 ){
  console.log('succuess')
}

C

let maxCount = 10;
let isComplete = false;
let pointX = 0;
let pointY = 0;

D

let maxCount = 10;
let isComplete = false;
let pointX,pointY;
pointX = 10;pointY = 10;

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

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

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

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

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

以下module.json5配置文件正确的是(ABCD)


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

A.@Style

B.@Shared

C.@State

D.@Sendable

以下关于ArkUI NavDestination组件的生命周期执行顺序中正确的是

A onWillappear->onAppear->onWillShow->onShow->onWillHide->onHidden->onWillDisappear->onDisappear

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

toastshowmode.TOP_MOAST

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

蒙一个 0,6,1,6

A、offsetX为-20 offsetY为50 surfaceWidth为200 surfaceHeight为500

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

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

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

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

一个复杂的项目,该项目不仅包含主入口模块(Entry Module),还有多个特性的功能模块(Feature Modules/HSP),并且这些模块间存在着相互调用关系。为了确保在调试过程中能够完整地测试所有交互逻辑,需要将涉及到的所有模块的HAP包都部署到目标设备上。请从以下选项中选择正确的操作步骤来配置DevEco Studio,以便一次性部署和调试项目中的多个模块

B进入“Run >Edit Configurations"菜单,在"Deploy Multi Hap"选项卡下,勾选"Deploy Multi HapPackages”,随后在列表中选择需要部署的模块。

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

A. Compatible SDK是兼容的最低API Version。

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

B. 为了快速清理未使用的import,可以选中项目根目录,按下快捷键Ctrl+Alt+O(在macOS上为Control+Option+0) ,让DevEco Studio自动识别并移除所有未使用的import,并自动按照预设规则排序和合并import。

在使用DevEco studio的Profiler进行Harmonyos应用或服务内存管理优化时,以下哪个描述最准确地概述了“Allocation Insight”功能在识别和解决内存问题中的作用

A. Allocation Insight通过分析应用服务运行时的内存分配及使用情况,辅助定位内存泄漏、内存抖动和溢出问题,支持优化内存使用

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

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

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

B.@Preview @Component struct TitleSample { @StorageProp('title'”) title: string = 'PlaceHolder'; build( ){Text(this.title)}}

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

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

D HAR不支持使用page页面

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

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

D hsp包编译后是.hsp文件

根据代码,以下ABCD解释正确的是(A)

enum Mode {

  fullScreen, halfScreen

}


@Entry
@Component
struct Page {
  @State title: string = ”
  @state mode: Mode = Mode.fullScreen;

  isShownTitle(): boolean {
    if (this.mode == Mode.fullScreen) {
      this.title = "Title";

      return true;

    } else {

      this.title = "Section";
      return false;
    }
  }

  build() {

    Column() {

      if (this.isShownTitle()) {
        Text(`${this.title}`)
      } else {

        Text(`${this.title}`)
      }

      ChangeMode({ mode: this.mode })

    }
  }
}


@component
struct ChangeMode {
  @Prop mode: Mode;

  build() {

    Row({ space: 20 }) {

      Button('full screen').onclick(() => {
        this.mode = Mode.fullScreen;
      })
      Button('half screen').onclick(() => {
        this.mode = Mode.halfScreen;

      })
    }
  }
}

A.本例子可以运行起来,所以代码没有问题,

B.为了避免@Prop的拷贝,可以优化使用@Link,在该例子中行为和@Prop-样。

C.在ChangeMode里改变mode的值,会触发其父组件Page的Title内容的切换

D.在自定义组件Page的build方法里改变状态变量是非法操作,可能导致未定义的异堂UI行为.

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

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

以下关于ArkUI NavDestination组件的生命周期执行顺序中正确的是? (A)

A.onWillappear->onAppear->onWillShow->onShow->onWillHide->onHidden->onWillDisappear->onDisappear

B.onWillappear->onWillShow->onShow->onAppear->onWillHide->onHidden->onWillDisappear->onDisappear

C.onWillappear->onAppear->onWillShow->onShow->onWillHide->onWillDisappear->onHidden->onDisappear

D.onWillappear->onAppear->onWillShow->onShow->onWillDisappear->onWillHide->onHidden->onDisappear

singleton模式的UIAbility,在冷启动时生命周期的执行顺序是: (B)

B onCreate->onWindowStageCreate->onForeground

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

D.name

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

B hiDebug

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

A.@Provide+@Consume

B.@State+@Link

C.LocalStorage

D.AppStorage

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

A.标记了@Reuseable的自定义组件的父组件范围内

B.整个页面都可以复用

C.标记了@Reuseable的自定义组件的外层容器节点范围内

D.整个应用内都可以复用

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

A组件节点渲染时间

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

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

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

A. 仅存在moduleA的image.png

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

C.元服务和应用可以共用一个代码工程,采用多目标产物构建方式,构建出应用和元服务两个产物,用于上架。

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