鸿蒙高级开发者认证2024

1,319 阅读10分钟

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

A. 函数对象本身,new.Target,this

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

C. new.Target,函数对象本身,this

D. new.Target,this,函数对象本身

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

A. Object.values()

B. Object.getOwnPropertyDescriptor()

C. Object.getOwnPropertyDesdcriptors()

D. Object.hasOwnProperty()

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

class C {}

let value1: number = null;

let value2: string | null = null;

let value3: string | undefined = null;

let value4: C = null

A. value4

B. value3

C. value1

D. value2

以下a1\a2\a3\a4哪些赋值语句在ArkTS中是合法的?(a2)

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();

依次点击ABCD四个按钮,其中不会触发ui刷新的是

buttonC 包含Jim的按钮

现有一个宽高分别为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}

已知下列代码PageOne页面为navigation中的某一子页面,依次点击PageOne页面中toPageTwo按钮,PageTwo页面中toPageOne按钮,此时点击get按钮获取全部名为name的NavDestination页面的位置索引为([0,1])

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

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行为.

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

A.TransitionEffect.asymmetric(TransitionEffect.OPACITY.animation({duration:2000}),TransitionEffect.translate({x:100}).animation({duration: 2000}))

B.TransitionEffect.OPAClTY.combine(TransitionEffect.translate({x:100}).animation({duration: 2000)))

C.TransitionEffect.OPACITY.animation({duration: 2000}).combine(TransitionEffect.translate({x:100})

D.TransitionEffect.translate({x:100}).combine(TransitionEffect.OPACITY.animation({duration: 2000}))

在UlAbility的onCreate生命周期中通过EventHub的on注册“event1"和"event2“事件。

………………

D选项

[Example].[Entry].[EntryAbility]receive. []

[Example].[Entry].[EntryAbility]ireceive.[2,"test2"]

[Example].[Entry].[EntryAbility]receive.[2,"test2"]

Text组件不支持以下哪种ABCD代码中哪种使用方式?(C)

A:

@Entry
@Component
struct TextExample {
  build() {

    Column({ space: 8 }) {

      Text('textshadow').fontSize(9).fontColor(0xcccccc).margin(15).width('90%')
    }
  }
}

B:

@Entry
@Component
struct SpanExample {
  build() {
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifycontent: FlexAlign.SpaceBetween }) {

      Text() {
        Span('In Line')
        Span('Component')
        Span('!')
      }
    }.width('100%').height(250).padding({ left: 35, right: 35, top: 35 })

  }
}

C:

@Entry
@Component
struct styledstringDemo {
  scroll: Scroller = new Scroller();
  layout: TextLayoutManager = new TextLayoutManager();
  controller1: TextController = new TextController();

  async onPageShow() {
    this.controller1.setLayout(this.layout)
  }

  build() {
    Column() {
      Text(undefined, { controller: this.controller1 })
    }.width('100%')
  }
}

D:

@Entry
@Component
struct styledStringDemo {
  scroll: Scroller = new Scroller();
  mutableStyledString: Mutablestyledstring = new Mutablestyledstring("test hello world", [{

    start: 0,
    length: 5,

    styledKey: styledstringKey.FONT,

    styledValue: new Textstyle({ fontColor: Color.Pink })
  }]);
  controller1: TextController = new TextController();

  async onPageshow() {

    this.controller1.setstyledstring(this.mutablestyledstring)
  }

  build() {

    Column() {
      Text(undefined, { controller: this.controller1 })
    }.width('100%')
  }
} 

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

A无需配置,直接在代码中编写import xxx from'library'

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

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

D在feature的build-profile.json5文件的dependencies字段中配置library的依赖

开发者小张正在使用DevEco Studio开发一款Harmony0S应用, 他遇到了一个仅在应用实际运行环境中出现的问题,需要调试已部署在设备上的应用以定位问题根源,为了能够在应用已经运行的情况下介入调试,小张应该采用哪种调试方法(C)

A.使用“Profile”功能,因为这同样能提供对运行时应用的监控与调试能力。

B.使用Debug功能,将应用重新推包运行调试

C. Attach Debugger to Process, 这允许他连接到正在运行的应用进程进行调试。

D. Run without Debugging, 先让应用自由运行, 随后手动附加调试器。

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

A.张工应该首先使用Ctrl+Shift+F快捷键全局搜索问题,然后手动在搜索结果中找出代码警告和错误的原因及位置。

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

C.张工只需在代码编辑界面按下F1键,DevEco Studio会自动识别当前光标所在行的错误并直接修复。

D.张工在代码编辑界面看到红色波浪线标记的错误时,直接右键点击错误代码,选择“Delete Line”以移除错误代码行,从而“修复”问题。

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

A.DevEco Profiler主要是一个自动化修复工具,能自动检测并解决所有HarmonyOS应用的性能问题

B.DevEco Profier依据Top-Down设计理念,通过高度整合的数据展示范式,提供从宏观到微观的性能数据分析,加速开发者定位和解决问题的过程

C.DevEco Profiler采用Bottom-Up设计原则,从底层代码细节开始逐步构建性能模型

D. DevEco Profiler专注于用户界面设计的美化,使开发者操作更为直观

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

A Allocation Insight详细展示应用运行时的每条语句柄分配记录,便于开发者逐一检查内存使用,但不提供内存泄漏的自动识别功能

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

C Allocation Insight主要关注于内存碎片整理,减少内存分配的不连续性问题,对内存泄漏和溢出问题的检测不是其主要功能

D Allocation Insight仅提供内存分配总量的概览,帮助开发者宏观了解内存使用趋势,但对于具体泄漏或抖动问题无能为力

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

A. Ctrl_shift + f

使用DevEco studio进行复杂的跨设备功能开发与调试工作,期间频繁依赖本地模拟器来模拟多样化的设备环境。在这样的背景下,以下关于DevEco studio本地模拟器所支持的规格与功能,哪一项描述是准确的?(C)

A.本地模拟器和真机的能力没有任何差异,真机上可以支持的能力在模拟器上都可以

B本地模拟器当前不支持查看HiLog以及FaultLog

C本地模拟器上运行的应用无需进行签名,简化了调试过程。

D本地模拟器当前不支持单元测试框架和UI测试框架的运行

应用开发中使用的各类资源文件,需要放入特定子目录中存储管理,以下关于资源说法错误的是(A)

A rawfile目录,支持创建多层子目录,子目录名称可以自定义,文件夹内可以自由放置各类资源文件。目录中的资源文件会被编译成二进制文件,并赋予资源文件ID。

B resfile目录,应用安装后,resfile资源会被解压到应用沙箱路径,通过Context属性resourceDir获取到resfile资源目录后,可通过文件路径访问。

C stage模型多工程情况下,共有的资源文件放到AppScope下的resources目录。

D base目录是默认存在的目录,二级子目录element用于存放字符串、颜色、布尔值等基础元素,media、profile存放媒体、动画、布局等资源文件。

A中资源文件不会被编译成二进制文件并赋予资源文件ID

当前您在开发一个ArkTs、stage模型的Harmonyos工程,关于当前ArkTS工程目录结构,下列选项说法错误的是? (B)

A build-profile.json5:应用级编译构建任务脚本。

B entry>src>main>module.json5:Stage模型模块配置文件,主要包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。

C oh-package.json5:描述依赖配置,如:依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化配置(parameterFile)等

D AppScope>app.json5:应用的全局配置信息。

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

A. hdc install -p ohosapp.hap

B. bm install -p ohosapp.hap

C. bm install -p ohosapp.hap -r

D. bm install -p /data/app/

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

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 {
        return 'test_instance';
      }
    }

    return 'MyAbilitystage';
  }
}

依次调用如下方法4次启动UIAbi1ityA,value分别是"test""test”"testA""testA",则当前运行期UIAbility实例有几个?

function testSpecified(context,value){

  let want: Want ={

    deviceId:"",

    bundleName:'com.samples.stagemodelabilitydevelop',

    abilityName: 'UIAbilityA',

    moduleName:'entry',

    parameters:{

      instanceKey: value

    }

  };

  context.startAbility(want).then(()=>{

    hilog.info(DOMAIN NUMBER, TAG, 'Succeeded in starting UIAbilityA.');

  }).catch((err:BusinessError)=>{

    hilog.error(DOMAIN_NUMBER, TAG, `Failed to start UIAbilityA. code is ${err.code}`)

  })

} 

3个实例。(两次testA只启动同一个实例)

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

A、onTouch

B、onScroll

C、onAreaChange

D、aboutToReuse