鸿蒙开发者高级认证-理论考试题(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...

相关推荐
goto_w14 分钟前
uniapp上使用webview与浏览器交互,支持三端(android、iOS、harmonyos next)
android·vue.js·ios·uni-app·harmonyos
别说我什么都不会15 小时前
ohos.net.http请求HttpResponse header中set-ccokie值被转成array类型
网络协议·harmonyos
码是生活16 小时前
鸿蒙开发排坑:解决 resourceManager.getRawFileContent() 获取文件内容为空问题
前端·harmonyos
鸿蒙场景化示例代码技术工程师16 小时前
基于Canvas实现选座功能鸿蒙示例代码
华为·harmonyos
小脑斧爱吃鱼鱼17 小时前
鸿蒙项目笔记(1)
笔记·学习·harmonyos
鸿蒙布道师18 小时前
鸿蒙NEXT开发对象工具类(TS)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
zhang10620918 小时前
HarmonyOS 基础组件和基础布局的介绍
harmonyos·基础组件·基础布局
马剑威(威哥爱编程)18 小时前
在HarmonyOS NEXT 开发中,如何指定一个号码,拉起系统拨号页面
华为·harmonyos·arkts
GeniuswongAir19 小时前
Flutter极速接入IM聊天功能并支持鸿蒙
flutter·华为·harmonyos
90后的晨仔1 天前
鸿蒙ArkUI框架中的状态管理
harmonyos