首页 > 其他分享 >HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号1

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

时间:2024-07-21 10:55:05浏览次数:11  
标签:TransitionEffect DevEco HarmonyOS 开发者 应用 题库 组件 单选题

本来打算找到工作再整理高级的题库,但一直没什么面试机会。宅在家里也不知道干些什么。索性就把高级的题库整理出来了。也算有头有尾。高级的题库更新之后,专业性更强了,不是真正从事这一行的,很难做出来。本人就是个小菜鸡,有一些题,我也不想不明白。题目的答案我尽可能的找到出处,如果读者发现错误或有补充建议,欢迎评论或私信笔者。笔者这篇就当抛砖引玉,各位读者可以当作考试的一个参考

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


注:有读者反馈,题库的代码块比较多,打开文章时会卡死。所以笔者将题库拆分,单选题20个为一组,多选题10个为一组,题库目录如下,读者可以按需跳转。如果对您的阅读产生不便,笔者在这里向大家说声抱歉,请各位读者原谅。完整的md文档,等读者把题库整理完,会将网盘链接发出。

序号目录:


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

单选题题库 - 序号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源代码文件逐渐积累了大量imbort语句,其中不乏未使用的import以及不规范的排序情况,关于DevEco Studio的编辑器的"Optimize Imports",以下说法正确的是

​ 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"中。


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)


标签:TransitionEffect,DevEco,HarmonyOS,开发者,应用,题库,组件,单选题
From: https://blog.csdn.net/Gusha_/article/details/140295266

相关文章

  • 【架构师专栏】togaf9.2基础题库
    1、根据T0GAF架构,下列哪一项是被普遍接受的一个整个企业架构的子集划分?A.应用,业务,数据,技术B.能力,组件,战略C.下文,定义,治理,改造D.义,实现,过渡,愿景正确答案:A2、关于TOGAF9文档结构的叙述中,哪一个是正确的?A.第一部分介绍了企业架构的T0GAF方法B.第二部分介......
  • 【大数据专题】Flink题库
    1.简述什么是ApacheFlink?ApacheFlink是一个开源的基于流的有状态计算框架。它是分布式地执行的,具备低延迟、高吞吐的优秀性能,并且非常擅长处理有状态的复杂计算逻辑场景2.简述Flink的核心概念?Flink的核心概念主要有四个:EventStreams、State、Time和Snapsho......
  • 25届华为机考笔试考的啥?如何通过机试|附全岗位真题库通关攻略
    职小豚一、华为公司介绍以及招聘信息嗨,各位小伙伴们!今天咱们来聊聊科技界的巨头——华为。华为,成立于1987年,总部位于中国深圳。经过多年的拼搏与发展,如今已成为全球领先的信息与通信技术(ICT)解决方案供应商。华为的业务范围那叫一个广泛,涵盖了电信运营商、企业、终端和......
  • 【HarmonyOS开发】Tabs使用封装
    背景在写Tabs时,会使用很多个TabContent来实现不同页面的展示内容,但是如果TabContent数量很多时,会导致Tabs代码量大而且很臃肿,因此想着尝试去封装Tabs的使用,可以让界面整洁和对内容界面的解耦。主要依托于wrapBuilder:封装全局@Builder的方法使用。需要注意从API11才开始......
  • HarmonyOS 开发者联盟高级认证最新题库
    本篇文章包含Next版本更新后高级认证题库中95%的题目。答案正确率50-60%,答案仅做参考。请在考试前重点看一遍题目,勿要盲目抄答案。欢迎在评论留言正确答案和未整理的题目。1、下面关于方舟字节码格式PREF_IMM16_v8_v8描述正确的是16位前缀操作码,16位立即数,2个8......
  • HarmonyOS NEXT 学习笔记3--登录页面(数据绑定)
    1.代码:import{promptAction}from'@kit.ArkUI'@Entry@ComponentstructPage_textInput_onchange{//@StateUI刷新测试[注意:不是双向绑定]username:string=''password:string=''build(){Column({space:20}){......
  • 基于java+springboot+vue实现的在线试题库系统(文末源码+Lw)108
     基于SpringBoot+Vue的实现的在线试题库系统(源码+数据库+万字Lun文+流程图+ER图+结构图+演示视频+软件包) 系统功能:精品在线试题库系统有管理员,教师,学生三个角色。管理员功能有个人中心,专业管理,学生管理,教师管理,试卷管理,试题管理,考试管理。教师可以管理试题和试卷,查看学生......
  • 【Python123题库】#查询省会 #字典的属性、方法与应用
    禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/140081665参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301有帮助麻烦点个赞~~Python123题库查询省会字典的属性、方法与应用查询省会类型:字典‪‬‪‬‪‬‪‬‪‬‮‬‪‬......
  • 22 HarmonyOS应用权限管控
    两种系统授权用户授权系统授权(配置文件)和用户授权(比较敏感的用户自己授权+弹窗授权)常见权限要在moudle.json5里面配置 用户授权相机设备位置开放匿名设备符麦克风读写问价等系统权限访问网络蓝牙后台运行打印马达等使用方法 1检查访问令牌是否有权限 2......
  • 【HarmonyOS NEXT】鸿蒙 代码混淆
    代码混淆简介针对工程源码的混淆可以降低工程被破解攻击的风险,缩短代码的类与成员的名称,减小应用的大小。DevEcoStudio提供代码混淆的能力并默认开启,API10及以上版本的Stage模型、编译模式为release时自动进行代码混淆。使用约束仅支持Stage工程编译模式为release模块及......