鸿蒙开发者高级认证-理论考试题(2025年02月)第一弹

说明:答案不保证正确。欢迎讨论。。。

下列哪些模块可以在进程内实现单例?

说明:

共享模块是进程内只会加载一次的模块,使用"use shared"这一指令来标记一个模块是否为共享模块。

非共享模块在同一线程内只加载一次,在不同线程间会加载多次,在不同的线程内都会产生新的模块对象。因此可以使用共享模块来实现进程单例。

developer.huawei.com/consumer/cn...

以下关于StyledString的描述错误的是

说明:

A: equals:当属性字符串的文本及样式均一致,视为相等。不比较GestureStyle,当属性字符串配置了不同事件,文本和其他样式相同时,亦视为相等。当比较CustomSpan时,比较的是地址,地址相等,视为相等。

B: fromHtml将HTML格式字符串转换成属性字符串,当前支持转换的HTML标签范围:<p><span><img>。仅支持将这三种标签中的style属性样式转换成对应的属性字符串样式。

C: 这句话是对的

D:getStyles 当指定范围属性字符串未设置任何样式,则返回空数组。

这题答案应该是B

ArkTs支持以下哪个函数?

说明:

ArkTS不允许使用TypeScript或JavaScript标准库中的某些接口。大部分接口与动态特性有关。ArkTS中禁止使用以下接口:

全局对象的属性和方法:eval

Object:protodefineGetterdefineSetter

lookupGetterlookupSetter、assign、create、

defineProperties、defineProperty、freeze、

fromEntries、getOwnPropertyDescriptor、getOwnPropertyDescriptors、

getOwnPropertySymbols、getPrototypeOf、

hasOwnProperty、is、isExtensible、isFrozen、

isPrototypeOf、isSealed、preventExtensions、

propertyIsEnumerable、seal、setPrototypeOf

Reflect:apply、construct、defineProperty、deleteProperty、

getOwnPropertyDescriptor、getPrototypeOf、

isExtensible、preventExtensions、

setPrototypeOf

Proxy:handler.apply()、handler.construct()、

handler.defineProperty()、handler.deleteProperty()、handler.get()、

handler.getOwnPropertyDescriptor()、handler.getPrototypeOf()、

handler.has()、handler.isExtensible()、handler.ownKeys()、

handler.preventExtensions()、handler.set()、handler.setPrototypeOf()

链接:developer.huawei.com/consumer/cn...

答案应该是C

下面关于V2状态管理@Monitor装饰器的描述错误的是

说明:

A:@Monitor装饰器具有深度监听的能力,能够监听嵌套类、多维数组、对象数组中指定项的变化。对于嵌套类、对象数组中成员属性变化的监听要求该类被@ObservedV2装饰且该属性被@Trace装饰。

B:单个@Monitor装饰器能够同时监听多个属性的变化,当这些属性在一次事件中共同变化时,只会触发一次@Monitor的回调方法。

C: @Monitor装饰器支持在类中与@ObservedV2、@Trace配合使用,不允许在未被@ObservedV2装饰的类中使用@Monitor装饰器。未被@Trace装饰的属性无法被@Monitor监听到变化。

D:@Monitor监听的状态变量为类对象时,仅能监听对象整体的变化。监听类属性的变化需要类属性被@Trace装饰。

链接:developer.huawei.com/consumer/cn...

答案选D

下面关于@Track装饰器的限制条件说法错误的是?

说明:

A: @Track是class对象的属性装饰器。当一个class对象是状态变量时,@Track装饰的属性发生变化,只会触发该属性关联的UI更新;如果class类中使用了@Track装饰器,则未被@Track装饰器装饰的属性不能在UI中使用,如果使用,会发生运行时报错。

B:错误

C: 是正确的

D: 也是正确的

链接:developer.huawei.com/consumer/cn...

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

说明:

方舟字节码中的操作码通常被编码为一个8位的值,因此至多只能有256个操作码。随着方舟编译器运行时功能的演进,字节码的数量也在逐步增加,已经超过了256个。因此,方舟字节码引入了前缀(prefix),将操作码最大宽度从8位扩展到16位。8位操作码(无前缀的)用于表示频繁出现的指令,16位操作码(有前缀的)用于表示出现频率不高的指令。

链接:developer.huawei.com/consumer/cn...

在Column容器中,使用alignItems(HorizontalAlign.End)时,子元素如何排列?

说明:

水平右对齐。

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

js 复制代码
class Data {
  num: number
  type: string

  constructor(num: number, type: string) {
    this.num = num;
    this.type = type;
  }
}

@Reusable
  @Component
  struct Item {
    @State data: Data | undefined = undefined;

    aboutToAppear(): void {
      console.log("Demo log1")
    }

    aboutToReuse(params: ESObject): void {
      console.log("Demo log2")
      this.data = params.data
    }

    build() {
      Text("num = " + this.data?.num + ", type = " + this.data?.type)
    }
  }


@Preview
  @Entry
  @Component
  struct ColumnPage {
    data1: Data = new Data(1, "type1");
    data2: Data = new Data(2, "type2");
    @State data: Data = this.data1;

    build() {
      Column(){
        if(this.data.type == 'type1') {
          Item({data: this.data}).reuseId(this.data.type)
        } else {
          Item({data: this.data}).reuseId(this.data.type)
        }

        Button("Change").onClick(() => {
         // console.log(String(this.data === this.data1))
          if(this.data === this.data1){
            this.data = this.data2
          } else {
            this.data = this.data1
          }
        })
      }

    }
  }

A: 6, 0

B: 1, 0

C: 1, 5

D: 2, 4

答案应该是B

以下程序中,对按钮进行点击后,后台会输出什么内容?

js 复制代码
@Preview
@Entry
@Component
struct HitTestBehaviorExample {
  @State message: string = 'Hello World';

  build() {
    Stack() {
      Button('outer button').onTouch((event) => {
        console.log('outer button touched type: ' + (event as TouchEvent).type)
      })

      Stack() {
        Button('inner button').onTouch((event) => {
          console.log('inner button touched type:' + (event as TouchEvent).type)
        })
      }.width('100%').height('100%')
      .hitTestBehavior(HitTestMode.Block)
      .onTouch(event => {
        console.log('stack touched type: ' + (event as TouchEvent).type)
      })
    }.width(300).height(300)
  }
}

说明:答案D

以下程序中,点击"hello world"后,控制台会输出什么内容?

js 复制代码
@Preview
@Entry
@Component
struct HitTestBehaviorExample {
  @State message: string = 'Hello World';

  isPolygon(event: TouchEvent) {
    return true;
  }

  build() {
    Row() {
      Column() {
        Text('hello world').backgroundColor(Color.Blue)
          .fontSize(50).fontWeight(FontWeight.Bold)
          .onClick(() => {
            console.log('Text click')
          })
      }.width(400).height(300)
      .backgroundColor(Color.Pink)
      .onClick(() => {
        console.log("Column click")
      })
      .onTouchIntercept((event: TouchEvent) => {
        console.log('OnTouchIntercept')
        if(this.isPolygon(event)){
          return HitTestMode.None
        }
        return HitTestMode.Default
      })
    }.width('100%')
  }
}

说明:

项目需要同时进行应用和元服务的开发,并针对当前项目工程中的代码可以分别构建出应用和元服务的包,如何在DevEcoStudio中设置不同的构建配置,达成这个目的?

答案D

开发者小华开发了一个鸿蒙应用,功能开发自验证完成后,准备进行上架了,需要对应用的质量进行初步的评过,为了快速评估和提升产品品质,针对这个场景,小华可以使用IDE上哪个能力帮助他完成这个事情?

答案:C

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

说明:

B:内存分析是 Allocation分析:developer.huawei.com/consumer/cn...

C:CPU分析: developer.huawei.com/consumer/cn...

答案是A

链接:developer.huawei.com/consumer/cn...

相关推荐
特立独行的猫a4 小时前
HarmonyOS NEXT 诗词元服务项目开发上架全流程实战(一、项目介绍及实现效果)
华为·harmonyos·元服务·上架
云和数据.ChenGuang7 小时前
鸿蒙版电影app设计开发
华为·harmonyos·鸿蒙·鸿蒙系统
Bruce_Liuxiaowei8 小时前
HarmonyOS Next~鸿蒙系统UI创新实践:原生精致理念下的设计革命
ui·华为·harmonyos
SuperHeroWu713 小时前
【HarmonyOS 5】鸿蒙检测系统完整性
华为·harmonyos·模拟器·系统完整性·越狱设备
京东云开发者14 小时前
Taro on Harmony :助力业务高效开发纯血鸿蒙应用
harmonyos
前端付豪15 小时前
2、ArkTS 是什么?鸿蒙最强开发语言语法全讲解(附实操案例)
前端·后端·harmonyos
zhujiaming15 小时前
鸿蒙端应用适配使用开源flutter值得注意的一些问题
前端·flutter·harmonyos
前端付豪15 小时前
8、鸿蒙动画开发实战:做一个会跳舞的按钮!(附动效示意图)
前端·后端·harmonyos
前端付豪15 小时前
3、构建你的第一个鸿蒙组件化 UI 页面:实现可复用的卡片组件(附实战代码)
前端·后端·harmonyos
前端付豪15 小时前
7、打造鸿蒙原生日历组件:自定义 UI + 数据交互(附实操案例与效果图)
前端·后端·harmonyos