当前位置: 代码网 > it编程>硬件开发>arm开发 > HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号1

HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号1

2024年08月02日 arm开发 我要评论
HarmonyOS应用开发者高级认证最新题库,编写于2024年7月19日,Next版本发布之后

基础认证题库请移步:harmonyos应用开发者基础认证题库


注:有读者反馈,题库的代码块比较多,打开文章时会卡死。所以笔者将题库拆分,以20道题为一组,题库目录如下,读者可以按需跳转。如果对您的阅读产生不便,笔者在这里向大家说声抱歉,请各位读者原谅。该题库已整理完毕,笔者不再更新。笔者连续考了三次,都过了,所以答案应该没什么太大问题。有需要题库文档的可以自取。祝各位读者好运(๑¯ω¯๑)。如果各位读者有什么内推的工作机会,也可以悄悄告诉笔者,笔者不胜受恩感激

序号目录:


题库文档链接(自取):https://pan.baidu.com/s/153tdk4dvv_mmleyzoqw9hq?pwd=xkgr


注:题目是乱序,每次考试,选项的顺序都不同

单选题题库 - 序号1


1、以下关于taskpool和worker的描述正确的是

​ a、worker自行管理命周期,开发者无需关心任务负载高低

b、taskpool支持任务延时执行

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

​ d、taskpool和worker的任务执行时长上限都是无限制

taskpool和worker的对比 (taskpool和worker)-使用多线程并发能力进行开发-并发-arkts(方舟编程语言)-应用框架 | 华为开发者联盟 (huawei.com)


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

​ a、@state

b、@sendable

​ c、@shared

​ d、@style

sendable开发指导-附录-并发-arkts(方舟编程语言)-应用框架 | 华为开发者联盟 (huawei.com)


3、arkts支持以下哪些函数(不确定,object类里都有这些方法)

a、object.keys();

b、object.getownpropertysymbols();

c、object.isextensible();

d、object.isprototypeof();


4、以下哪些赋值语句在arkts中是合法。

class c {}

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

​ a、value1

b、value2

​ c、value3

​ d、value4


5、arkts支持以下哪个函数。(不确定,object类里都有这些方法)

a、object.values();

b、object.getownpropertydescriptors();

c、object.getownpropertydescriptor();

d、object.hasownproperty();


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

​ a、transitioneffect.asymmetric(transitioneffect.opacity.animation({duration:2000}),transitioneffect.translate({x:100}).animation({duration:2000}))

b、transitioneffect.opacity.animation({duration:2000}).combine(transitioneffect.translate({x:100}))

​ c、transitioneffect.translate({x:100}).combine(transitioneffect.opacity.animation({duration:2000}))

​ d、transitioneffect.opacity.combine(transitioneffect.translate({x:100}).animation({duration:2000}))

注:放到代码块里,方便查看

transitioneffect.asymmetric(transitioneffect.opacity.animation({duration:2000}),
transitioneffect.translate({x:100}).animation({duration:2000}))
// 答案	=========================================
transitioneffect.opacity
    .animation({duration:2000})
    .combine(transitioneffect.translate({x:100}))
transitioneffect
    .translate({x:100})
    .combine(transitioneffect.opacity.animation({duration:2000}))
transitioneffect.opacity
    .combine(transitioneffect.translate({x:100}).animation({duration:2000}))

出现/消失转场-转场动画-使用动画-ui开发 (arkts声明式开发范式)-arkui(方舟ui框架)-应用框架 | 华为开发者联盟 (huawei.com)


7、现有一个宽高分别为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、{ offsetx: 81, offsety: -89, surfacewidth: 150, surfaceheight: 500 }

b、{ offsetx: 81, offsety: -89, surfacewidth: 200, surfaceheight: 0 }

c、{ offsetx: -20, offsety: 50, surfacewidth: 200, surfaceheight: 500 }

d、{ offsetx: 75, offsety: -100, surfacewidth: 150, surfaceheight: 500 }

不确定,把所有选项列出

xcomponent-基础组件-基于arkts的声明式开发范式-arkts组件-arkui(方舟ui框架)-应用框架 | 华为开发者联盟 (huawei.com)


8、根据上面代码,以下解释正确的是

注:被注释的代码是额外加上的,用于测试,并非题目原本的

enum mode {
  fullscreen,
  halfscreen
}

@entry
@component
struct index {

  @state title: string = "";
  @state mode: mode = mode.fullscreen;

  isshowtitle(): boolean {
    if (this.mode == mode.fullscreen) {
      this.title = "title";

      return true;
    }else {
      this.title = "section";
      return false;
    }
  }

  build() {
    column(){
      if (this.isshowtitle()) {
        text(`${this.title}`)
      } else {
        text(`${this.title}`)
      }
      changemode({ mode: this.mode})
    }
  }
}

@component
struct changemode {
  //@link mode: mode;
  @prop mode: mode;
  build() {
    row({space: 20}) {
      button('full screen').onclick(() => {
        this.mode = mode.fullscreen
      })
      button('half screen').onclick(() => {
        this.mode = mode.halfscreen
      })
      //text(this.mode.tostring())
    }
  }
}

​ a、本例子可以运行起来,所以代码没有问题。

​ b、在changemode里改变mode的值,会触发其父组件page的title内容的切换。

​ c、为了避免@prop的拷贝,可以优化使用@link,在该例子中行为和@prop一样。

d、在自定义组件page的build方法里改变状态变量是非法操作,可能导致未定义的异常ui行为。


9、已知下列代码pageone页面为navigation中的某一子页面,依次点击pageone页面中topagetwo按钮,pagetwo页面中topageone按钮,此时点击get按钮获取全部名为name的navdestination页面的位置索引为(不确定,把所有选项列出)

// pageone.ets
@component
export struct pageonetmp {
  @consume('pageinfos') pageinfos: navpathstack;

  build() {
    navdestination() {
      column() {
        button('topagetwo', { stateeffect: true, type: buttontype.capsule })
          .width('80%')
          .height(40)
          .margin(20)
          .onclick(() => {
            this.pageinfos.pushpathbyname('pagetwo',"")
          })
        button('get', { stateeffect: true, type: buttontype.capsule })
          .width('80%')
          .height(40)
          .margin(20)
          .onclick(() => {
            console.log('获取全部名称为name的navdestination页面的位置索引', json.stringify(this.pageinfos.getindexbyname('pageone')))
          })
      }.width('100%').height('100%')
    }.title('pageone')
    .onbackpressed(() => {
      const popdestinationinfo = this.pageinfos.pop()
      console.log('pop返回值' + json.stringify(popdestinationinfo))
      return true
    })
  }
}
// pagetwo.ets
export class pages{
  names: string = ""
  values: navpathstack | null = null
}

@builder
export function pagetwotmp(info: pages){
  navdestination() {
    column(){
      button('topageone', { stateeffect: true, type: buttontype.capsule })
        .width('80%')
        .height(40)
        .margin(20)
        .onclick(() => {
          (info.values as navpathstack).pushpathbyname('pageone', null)
        })
    }.width('100%').height('100%')
  }.title('pagetwo')
  .onbackpressed(() => {
    (info.values as navpathstack).pop()
    return true
  })
}

a:[1,2]

b:[2,1]

c:[0,2]

d:[0,1]


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

@component
struct mycomponent {
  @state compwidth: number = 100;
  @state compheight: number = 100;
  @state compradius: number = 32;
  build() {
    column(){

    }
    //.backgroundcolor(color.red)
    .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;
    })
  }
}

/*
@entry
@component
struct index {
  build() {
    column(){
      mycomponent()
    }
  }
}
*/

​ a、2、3

​ b、1、3

​ c、1、2、3

d、1、2

属性动画接口说明-属性动画-使用动画-ui开发 (arkts声明式开发范式)-arkui(方舟ui框架)-应用框架 | 华为开发者联盟 (huawei.com)


11、依次点击a、b、c、d四个按钮,其中不会触发ui刷新的是:

class info{
  name: string;

  constructor(name: string) {
    this.name = name;
  }
}

@entry
@component
struct index {
  @state namelist: info[] = [new info("tom"), new info("bob"), new info("john")]

  build() {
    column() {
      foreach(this.namelist, (item: info) => {
        text(`${item.name}`)
      })
      button("a")
        .onclick(() => {
          this.namelist.push(new info("lucy"))
        })
      button("b")
        .onclick(() => {
          this.namelist[0] = new info("eric")

        })
      button("c")
        .onclick(() => {
          this.namelist[0].name = "jim"
        })
      button("d")
        .onclick(() => {
          this.namelist = [new info("barry"), new info("cindy"), new info("david")]

        })
    }
  }
}

​ a、a

​ b、b

c、c

​ d、d


12、从桌面冷启动如下应用,点击change按钮5次,整个过程中,代码中的2条log依次出现的次数,最初和最后画面上显示的【num = ?】的数字是(不确定,题目代码出错)

// error 题目出错

a、0,6,1,6

b、1,5,1,6

c、2,4,1,6

d、2,4,1,2


13、使用promptaction.showtoast如何设置显示在其他应用之上?

​ a、toastshowmode.default

​ b、toastshowmode.system_top_most

c、toastshowmode.top_moast

​ d、无需配置,默认显示在其他应用之上

@ohos.promptaction (弹窗)-ui界面-arkts api-arkui(方舟ui框架)-应用框架 | 华为开发者联盟 (huawei.com)


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

​ a、仅通过创建深度分析任务,利用perf数据详细分析性能瓶颈,修改代码后,不需再进行验证直接发布应用

​ b、首先使用"realtime monitor"实时监控,观察应用资源消耗,一旦发现cpu或内存异常,直接修改代码并重新编译

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

​ d、在发现应用性能不佳时,直接查看代码逻辑,凭经验修改后,利用profiler的"realtime monitor"确认资源消耗是否降低

性能优化过程简介-使用profiler进行性能调优-性能分析-deveco studio | 华为开发者联盟 (huawei.com)


15、deveco studio提供harmonyos应用/服务的ui预览界面与源代码文件间的双向预览功能,支持ets文件与预览器界面的双向预览。关于双向预览,下列选项说法错误的是?

​ a、选中预览器ui界面中的组件,则组件树上对应的组件将被选中,同时代码编辑器中的布局文件中对应的代码块高亮显示。

b、双向预览不支持通过组件的属性面板实时修改属性或样式。

​ c、选中布局文件中的代码块,则在ui界面会高亮显示,组件树上的组件节点也会呈现被选中的状态。

​ d、选中组件树中的组件,则对应的代码块和u界面也会高亮显示。


16、项目中包含多个模块和数千行代码。随着开发的深入,项目中的arkts源代码文件逐渐积累了大量import语句,其中不乏未使用的import以及不规范的排序情况,关于deveco studio的编辑器的"optimize imports",以下说法正确的是(不确定,cd都可以清理import语句。)

a、应该手动遍历每个arkts文件,逐一检查并删除未使用的import语句,然后按照字母顺序手动排序剩余的import。

b、在deveco studio中,没有直接的"optimize imports"功能,需要安装第三方插件来实现这个需求。

c、为了快速清理未使用的import,可以选中项目根目录,按下快捷键ctrl+alt+o(在macos上为control+option+o),让deveco studio自动识别并移除所有未使用的import,并自动按照预设规则排序和合并import。

d、可以在菜单栏中依次点击"code">"reformat code"来达到优化import的目的,因为"optimize imports"功能已整合进"reformat code"中。

代码阅读-代码编辑-deveco studio | 华为开发者联盟 (huawei.com)


17、在使用deveco studio的profiler进行harmonyos应用或服务内存管理优化时,以下哪个描述最准确地概述了"allocation insight"功能在识别和解决内存问题中的作用

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

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

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

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

内存分析及优化-基础内存分析:allocation分析-性能分析-deveco studio | 华为开发者联盟 (huawei.com)


18、项目需要同时进行应用和元服务的开发,并针对当前项目工程中的代码可以分别构建出应用和元服务的包,如何在deveco studio中设置不同的构建配置,达成这个目的 (不确定,把所有选项列出)

a、 在工程级别build-profile.json5定义两个product,将两个product的bundletype分别设置成app和atomicservice

b、修改工程级别的appscope/app.json5中的bundletype值为atomicservice

c、在模块级别build-profile.json5定义两个target,将两个target的bundletype分别设置成app和atomicservice

d、修改工程级别的appscope/app.json5中的bundletype值为app

元服务概述-指南 | 华为开发者联盟 (huawei.com)


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

​ a、deveco profiler采用bottom-up设计原则,从底层代码细节开始逐步构建性能模型

​ b、deveco profiler专注于用户界面设计的美化,使开发者操作更为直观

c、deveco profiler依据top-down设计理念,通过高度整合的数据展示范式,提供从宏观到微观的性能数据分析,加速开发者定位和解决问题的过程

​ d、deveco profiler主要是一个自动化修复工具,能自动检测并解决所有harmonyos应用的性能问题

profiler工具简介-性能分析-deveco studio | 华为开发者联盟 (huawei.com)


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

​ a、本地模拟器当前不支持单元测试框架和ui测试框架的运行

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

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

​ d、本地模拟器当前不支持查看hilog以及faultlog

模拟器与真机的差异-概述-使用模拟器运行应用/服务-应用/服务运行-deveco studio | 华为开发者联盟 (huawei.com)


(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com