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

高级的题库更新之后,专业性更强了,不是真正从事这一行的,很难做出来。本人就是个小菜鸡,有一些题,我也不想不明白。题目的答案我尽可能的找到出处,如果读者发现错误或有补充建议,欢迎评论或私信笔者。笔者这篇就当抛砖引玉,各位读者可以当作考试的一个参考

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


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

序号目录:

  • 单选题
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号1
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号2
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号3
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号4
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号5
  • 多选题
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号1
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号2
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号3
  • 答案纯享版
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 答案纯享版

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


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

多选题题库 - 序号3


41、以下关于Localstorage的说法正确有哪些?

​ A、LocalStorage中的所有属性都是不可变的。

B、被@Component装饰的组件最多可以访问一个LocalStorage实例和AppStorage,未被@Entry装饰的组件不可被独立分配LocalStorage实例,只能接受父组件的LocalStorage实例。

C、组件树的根节点,即被@Entry装饰的@Component,可以被分配一个LocalStorage实例, 此组件的所有子组件实例将自动获得对该LocalStorage实例的访问权限。

D、应用程序可以创建多个LocalStorage实例,LocalStorage实例可以在页面内共享,也可以通过GetShared接口,获取在UIAbility里创建的GetShared,实现跨页面、UIAbility内共享 。

LocalStorage:页面级UI状态存储-管理应用拥有的状态-状态管理(V1稳定版)-状态管理-学习ArkTS语言-基础入门 | 华为开发者联盟 (huawei.com)


42、在基于Stage模型开发的应用项目代码下,每个模块都存在一个module.json5配置文件,用于配置模块的基本信息,以下module.json5配置文件正确的是

//	A	
{
	"module": {
		"name": "bName",
		"type":" shared",
		"deviceTypes": [
			"default",
			"tablet"
		],
		"deliveryWithInstall": true,
		"pages": "$profile:main_pages"
    }
}
//	B	==	缺少字段【deliveryWithInstall】
{
	"module": {
		"name": "aName",
		"type": "har"
		"deviceTypes": [
		"default", "tablet" ]
	}
}
//	C	==	【type】字段不支持【hsp】
{
	"module": {
    	"name": "cName",
		"type": "hsp",
		"description": "$string:desc",
		"deviceTypes": [
			"default",
			"tablet"
		],
		"deliveryWithInstal1": true,
		"pages": "$profile:main_pages"
    }
}
//	D
{
	"module": {
		"name": "application",
		"type": "feature",
		"description": "$string:module_desc",
		"mainElement": "ApplicationAbility",
		"deviceTypes": [
			"default",
			"tablet"
		],
		"deliverywithInstall": true,
		"installationFree": false,
		"pages": "$profile:main_pages",
		"abilities": [
            {
				"name": "ApplicationAbility",
				"srcEntry": "./ets/applicationability/ApplicationAbility.ets", 
				"description": "$string:ApplicationAbility_desc",
				"icon": "$media:icon",
				"label": "$string:ApplicationAbility_label",
				"startwindowIcon": "$media:startIcon",
				"startWindowBackground": "$color:start_window_background",
				"exported": true
			}
		]
    }
}

A、A

​ B、B

​ C、C

D、D

module.json5配置文件-应用配置文件(Stage模型)-开发基础知识-基础入门 | 华为开发者联盟 (huawei.com)


43、hiAppEvent提供的Watcher接口,订阅到的系统事件,哪些包含HiLog日志?

​ A、CPU高负载事件

​ B、启动耗时事件

C、卡死事件

D、崩溃事件

CPU高负载事件介绍-CPU高负载事件-系统事件-事件订阅-HiAppEvent使用指导-Performance Analysis Kit(性能分析服务)-调测调优-系统 | 华为开发者联盟 (huawei.com)

启动耗时事件介绍-启动耗时事件-系统事件-事件订阅-HiAppEvent使用指导-Performance Analysis Kit(性能分析服务)-调测调优-系统 | 华为开发者联盟 (huawei.com)

卡死事件介绍-卡死事件-系统事件-事件订阅-HiAppEvent使用指导-Performance Analysis Kit(性能分析服务)-调测调优-系统 | 华为开发者联盟 (huawei.com)

崩溃事件介绍-崩溃事件-系统事件-事件订阅-HiAppEvent使用指导-Performance Analysis Kit(性能分析服务)-调测调优-系统 | 华为开发者联盟 (huawei.com)


44、当前动态import支持导入的模块类型有哪些?

A、动态import支持加载OHPM模块

B、动态import支持加载本地HAR模块

C、动态import支持加载HSP模块

D、动态import支持加载远程HAR模块

动态import-应用程序包开发与使用-应用程序包基础知识-开发基础知识-基础入门 | 华为开发者联盟 (huawei.com)


45、ArkTS是鸿蒙生态的应用开发语言。以下哪些选项是ArkTS的设计理念。(我感觉【satety】打错了,应该是【safety】)

A、通过规范强化静态检查和分析,减少运行时的类型检查,从而降低了运行时负载,提升执行性能。

B、通过规范强化静态检查和分析, 使得许多错误在编译时可以被检测出来,降低代码运行错误的风险。

​ C、ArkTS不支持null-satety特性 。

D、ArkTS保留 了TS大部分的语法特性,帮助开发者更容易上手ArkTS。


46、以下代码片段哪几处违反了ArkTS语法规范。

function foo(value: number) {
  return value;
}

foo('');
foo(0);
foo(undefined);
foo(null);

A. foo(null);

B. foo(undefined);

C. foo(");

​ D.foo(0);


47、以下哪些是可以在Navigation中使用pushPathByName接口传递的params的参数类型(不确定,把所有选项列出)

A、arrayBuffer

B、map

C、record

D、string


48、HSP支持导出ArkUl组件、接口,供应用内的其他HAP/HSP引用,下面正确的是(不确定,把所有选项列出)

//	A

//  library/src/main/ets/components/MyTitleBar.ets
@Component
export struct MyTitleBar {
  build() {
    Row() {
      Text($r('app.string.library_title' ))
        .id('library')
        .fontFamily('HarmonyHeiTi')
        .fontWeight(FontWeight.Bold)
        .fontSize(32)
        .fontColor($r('app.color.text_color'))
    }
    .width('100%')
  }
}
//	对外暴露的接口,需要在入口文件index.ets中声明:
//	library/index.ets
export { MyTitleBar } from './src/main/ets/components/MyTitleBar';
//	B

//  library/src/main/ets/utils/nativeTest.ts
import native from 'liblibrary.so';
export function nativeMulti(a: number, b: number): number {
  let result: number = native.multi(a, b);
  return result;
}
//  对外暴露的接口,需要在入口文件index.ets中声明:
//  library/index.ets
export { nativeMulti } from './ src/main/ets/utils/nativeTest';
//  C

//  library/src/main/ets/utils/test.ts
export class Log {
  static info(msg: string): void {
    console.info(msg);
  }
}
export function add(a: number, b: number): number {
  return a + b;
}
export function minus(a: number, b: number): number {
  return a - b;
}
//  对外暴露的接口,需要在入口文件index.ets中声明:
//  library/index.ets
export { Log, add, minus } from './src/main/ets/utils/test';

A、导出ArkUI组件

B、导出native方法,在HSP中也可以包含C++编写的so。对于so中的native方法,HSP通过间接的方式导出,以导出liblibrary.so的乘法接口multi为例

C、导出ts类和方法

HSP-应用程序包开发与使用-应用程序包基础知识-开发基础知识-基础入门 | 华为开发者联盟 (huawei.com)


49、下面关于方舟字节码文件格式描述正确的是

​ A、方舟字节码文件中数据类型uint32_t表示32-bit无符号整数,采用大端字节序

​ B、方舟字节码文件中不包含字节码文件内容的adler32校验和

C、方舟字节码文件是ArkTS/TS/JS编译后的二进制产物

D、方舟字节码文件中数据类型uint16_t表示16-bit无符号整数,采用小端字节序

方舟字节码文件格式-学习ArkTS语言-基础入门 | 华为开发者联盟 (huawei.com)


50、在开发HarmonyOS应用的多元化测试环境中,DevEco Studio引入了本地模拟器(Local Emulator)作为重要工具,旨在帮助开发者在个人开发机器上高效模拟HarmonyOS环境,进行应用或服务的快速运行与细致调试。请根据本地模拟器的实际应用场景与系统要求,选出所有正确的描述选项

​ A、开发者需要注意的是,DevEco Studio的本地模拟器可以在虚拟机内部进一步运行,以节省硬件资源。

B、为了保证流畅的运行和调试体验,本地模拟器推荐macOS系统版本至少为12.5以上。

C、DevEco Studio的本地模拟器允许开发者在个人电脑上模拟HarmonyOS环境,便于应用或服务的运行与调试。

D、mac计算机配置方面,为了确保本地模拟器的稳定运行,推荐至少配备8GB RAM。

使用环境-概述-使用模拟器运行应用/服务-应用/服务运行-DevEco Studio | 华为开发者联盟 (huawei.com)


51、下面关于混淆的描述正确的是

A、支持顶层作用域名称、 属性名称、文件名称等多种混淆功能

B、修改应用混淆配置,新配置需要重新全量编译应用才能生效

C、在工程build-profile.json5中的obfuscation.ruleOptions.files字段中配置该工程的混淆配置,该配置仅在编译该工程时生 效。

D、可以在HAR模块工程的build-profile.json5中的obfuscation.consumerFiles字段中配置导出的混淆配置,该配置仅在编译 依赖该HAR的模块时生效。

代码混淆-ArkTS(方舟编程语言)-应用框架 | 华为开发者联盟 (huawei.com)


52、如下哪些方式可实现图片动态播放?

//	A
import {AnimationOptions, AnimatedDrawableDescriptor} from '@ohos.arkui.drawableDescriptor'
import image from '@ohos.multimedia.image'

@Entry
@Component
struct ImageExample {
  pixelmaps: Array<PixelMap> = [];
  options: AnimationOptions = {duration:2000, iterations:1};
  @State animated: AnimatedDrawableDescriptor | undefined = undefined;

  async aboutToAppear() {
    this.pixelmaps = await this.getPixelMaps();
    this.animated = new AnimatedDrawableDescriptor(this.pixelmaps, this.options);
  }

  build() {
    Column() {
      Row() {
        Image(this.animated)
          .width('500px').height('280px')
      }.height('50%')
      Row() {
        Button('once').width(100).padding(5).onClick(() => {
          this.options = {duration:2000, iterations:1};
          this.animated = new AnimatedDrawableDescriptor(this.pixelmaps, this.options);
        }).margin(5)
      }
    }.width('50%')
  }

  private async getPixmapFromMedia(resource: Resource) {
    let unit8Array = await getContext(this)?.resourceManager?.getMediaContent({
      bundleName: resource.bundleName,
      moduleName: resource.moduleName,
      id: resource.id
    })
    let imageSource = image.createImageSource(unit8Array.buffer.slice(0, unit8Array.buffer.byteLength))
    let createPixelMap: image.PixelMap = await imageSource.createPixelMap({
      desiredPixelFormat: image.PixelMapFormat.RGBA_8888
    })
    await imageSource.release()
    return createPixelMap
  }

  private async getPixelMaps() {   
    //	====================	怎么没有定义Mypixelmaps????????
    Mypixelmaps.push(await this.getPixmapFromMedia($r('app.media.icon'))) //对应资源图片名后缀为png
    return Mypixelmaps;
  }
}
//	B
import {AnimationOptions, AnimatedDrawableDescriptor} from '@ohos.arkui.drawableDescriptor'
import image from '@ohos.multimedia.image'

@Entry
@Component
struct ImageExample {
  pixelmaps: Array<PixelMap> = [];
  options: AnimationOptions = { duration: 2000, iterations: 1 };
  @State animated: AnimatedDrawableDescriptor | undefined = undefined;

  async aboutToAppear() {
    this.pixelmaps = await this.getPixelMaps();
    this.animated = new AnimatedDrawableDescriptor(this.pixelmaps, this.options);
  }

  build() {
    Column() {
      Row() {
        Image(this.animated)
          .width('500px').height('280px')
      }.height('50%')

      Row() {
        Button('once').width(100).padding(5).onClick(() => {
          this.options = { duration: 2000, iterations: 1 };
          this.animated = new AnimatedDrawableDescriptor(this.pixelmaps, this.options);
        }).margin(5)
      }
    }.width('50%')
  }

  private async getPixmapListFromMedia(resource: Resource) {
    let unit8Array = await getContext(this)?.resourceManager?.getMediaContent({
      bundleName: resource.bundleName,
      moduleName: resource.moduleName,
      id: resource.id
    })
    let imageSource = image.createImageSource(unit8Array.buffer.slice(0, unit8Array.buffer.byteLength))
    let createPixelMap: Array<image.PixelMap> = await imageSource.createPixelMapList({
      desiredPixelFormat: image.PixelMapFormat.RGBA_8888
    })
    await imageSource.release()
    return createPixelMap
  }

  private async getPixelMaps() {
    let Mypixelmaps: Array<PixelMap> = await this.getPixmapListFromMedia($r('app.media.icon')) //对应资源图片为gif
    return Mypixelmaps;
  }
}
//	C
@Entry
@Component
struct ImageExample {
  build() {
    Column({ space: 10 }) {
      Image($r('app.media.earth')) //对应资源图片名后缀为gif
        .width(100)
        .height(100)
    }
  }
}
//	D
@Entry
@Component
struct ImageAnimatorExample {
  @State iterations: number = 1

  build() {
    Column({ space: 10 }) {
      ImageAnimator()
        .images([
          {
            src: $r('app media.img1')
          },
          {
            src: $r('app media.img2')
          },
          {
            src: $r('app media.img3')
          },
          {
            src: $r('app media.img4')
          }
        ])
        .duration(2000)
        .fillMode(FillMode.None).iterations(this.iterations).width(340).height(240)
        .margin({ top: 100 })
    }.width('100%').height('100%')
  }
}

A、A

B、B

C、C

D、D


53、下面关于混淆规则描述正确的是

​ A、-keep-global-name [,idetifies,…]: 指定想保留的属性名

B、-keep-file-name [,identifirs,...]:指定要保留的文件/文件夹的名称

​ C、-keep-property-name [,idetifies,…]:指定要保留的顶层作用域的名称

D、-print-namecache filepath:将名称缓存保存 到指定的文件路径。

代码混淆-ArkTS(方舟编程语言)-应用框架 | 华为开发者联盟 (huawei.com)


54、下面关于Node-API数据类型描述正确的是

​ A、napi_status:是一个枚举数据类型,表示Node-API接口返回的状态信息

​ B、napi_threadsafe_function_release_mode:该枚举类型定义了两个常量,用于指定线程安全函数的调用模式

​ C、napi_env:用于表示Node-API执行时的上下文

​ D、napi_threadsafe_function_call_mode:该枚举类型定义了两个常量,用于指定在何时释放线程安全函数的回调函数

Node-API支持的数据类型和接口-使用Node-API实现跨语言交互-代码开发-NDK开发 | 华为开发者联盟 (huawei.com)


55、以下数据类型中,哪些是Sendable数据 。(不确定)

import { lang } from '@kit.ArkTS';

class C {}

interface I extends lang.ISendable {}

A、interface I

​ B、class C

C、string

D、number


56、处于安全因素考虑,ArkTS不支持以下哪些语法。

A、with()

B、new Function('a', 'b', 'return a + b')

C、eval()

​ D、Object.entries()


57、在ArkTS中,以下哪些声明类的方式是正确的。

class C1 {
	value: number = 0;
}

class C2 {
	value: number;
    
	constructor(value: number) {
		this.value = value;
	}
}

class C3 {
	constructor(value: number) {
		this.value = value;
	}
}

class C4 {
	value: number;
}

A、C1

B、C2

​ C、C3

​ D、C4


58、小华正在使用DevEco studio开发一个复杂的HarmonyOS应用,他意识到代码中有一段逻辑被多次重复使用,为了优化代码结构和减少冗余,他决定将这段逻辑提取出来作为一个独立的方法。同时,他也注意到有些常用的硬编码值可以抽象为常量,以提高代码的可读性和维护性。小华希望利用DevEco Studio的代码重构功能来高效完成这些任务,通过以下哪些操作来实现代码重构,以提升编码效率

A、为了简化复杂类型的多次书写,小华可以选择特定类型字面量,通过“Refactor”菜单下的“Extract Type Alias”来创建类型别名

B、若需要将局部变量提升为类成员变量,小华只需简单选中变量名,右键选择“Refactor” -> “Promote Local Variable”

C、选中需要重构的代码块,右键点击选择“Refactor”,然后选择“Extract Method”来将代码块转换为一个新的函数/方法

D、如果小华识别到一 组相关的对象字面值可以抽象为一个接口,他可以直接通过“Refactor”菜单中的“Extract Interface”功能实现


59、哪些是持续集成最佳实践?

A、自动化构建:确保构建过程是完全自动化的,减少人为错误。

​ B、构建相同代码的 Pipeline 运行多次,得到结果不同。比如,基于同一代码基线,一条Pipeline构建了5次,只要最后一次通过即可。

C、全面的测试套件:包括单元测试、集成测试、功能测试等,以提高代码质量。

​ D、通常项目上会有一 个专职 Ops,在项目可以发布的时候手动触发部署流程,或者需要传递很多参数,让 Pipeline 运行起来。

E、频繁提交代码:鼓励开发人员经常提交小的代码更改, 以便更快地发现问题。

F、代码审查:在集成前进行代码审查,及时发现潜在问题。

G、快速反馈机制:让开发人员能迅速得知集成结果和测试状态。


60、下面代码符合ArkTS编程规范的是(不确定,把所有选项列出)

let maxCount = 10, isCompleted = false;
//	不能像Java这样定义变量
let pointX, pointY;
pointx = 10; pointY = 0;
for (let idx = 0; idx < 5; ++idx)
    // console.log(【string】类型)
	console.log(idx);
let maxCount = 10;
let isCompleted = false;
let pointX = 0;
let pointY = 0;
//	没有定义【condition】
if (condition) {
	console.log('success'); 
}

A、A

B、B

C、C

D、D


61、下面关于ArkTS中export用法,正确的是

A、export { export1 as alias1 } from "ets file name";

B、export * as name from "ets file name"

C、export * from "ets file name"

D、export { export1 } from "ets file name";


62、在使用DevEco Studio进行HarmonyOS应用开发和调试过程中,开发者小张遇到应用运行时意外终止的情况,他需要快速定位并解决导致应用崩溃的问题。以下哪些做法可以帮助小张有效分析和处理这些问题(不确定,把所有选项列出)

A、查看DevEco Studio log工具栏输出的错误日志,根据日志提示分析应用崩溃的具体原因及代码位置

B、若遇到App运行卡顿或系统整体无响((App Freeze, System Freeze)的情况,可以通过性能分析工具中的Frame Insight和Allocation Insight功能,分析应用的资源消耗情况,寻找可能的瓶颈

C、当怀疑问题是由于C++代码中的内存错误(如数组越界、内存泄露、重复释放内存)引起时,进入“Run/Debug Configurations"设置界面,勾选启用Address Sanitizer (ASan),然后重新部署应用进行测试以获取更详细的内存问题报告

D、利用系统自动生成的FaultLog,包括App Freeze、 CPP Crash、 JS Crash、 System Freeze和ASan报告, 这些报告会详细记录故障发生时的环境、堆栈信息和可能的故障原因,是排查问题的重要参考


63、为了加快构建速度,提高开发效率,可以如何调整hvigor配置,从而优化构建速度

A、启用hvigor的incremental,在增量场景下检查任务是否可以跳过

B、启动hvigor的daemon模式,在增量场景下复用缓存

​ C、启用hvigor的typeCheck,在增量场景下进行对higorfile.ts进行类型检查

D、启用hvigor的parallel,在增量场景下进行并行编译处理

提高hvigor构建性能-优化构建性能-优化构建-编译构建-DevEco Studio | 华为开发者联盟 (huawei.com)


64、项目组开发的HarmonyOS应用工程,为了保护hap代码资产,如何在DevEco Studio中启用混淆的功能,并设置相应的混淆规则?

A、在混淆规则配置文件obfuscation-rules.txt中进行混淆规则的配置

B、release模式下将buildOption/arkOptions/ruleOptions/enable设置为true


65、Navigation组件是路由导航的根视图容器,一般作为Page页面的根容器使用,以下关于Navigation组件说法正确的是

A、Navigation的子页面可以来自不同的Module

B、Navigation的页面显示模式有单页面、分栏和自适应三种显示模式


66、开发者小李正在使用DevEco Studio开发一款面向HarmonyOS的应用,该应用需要在多种设备上表现出一致的稳定性和优秀的用户体验。为了确保高质量的发布,小李意识到需要实施一套全面的测试策略,覆盖代码的自动化测试和手动测试,还需要衡量代码的测试覆盖率,以确定测试的充分性。在DevEco Studio的测试框架下,以下描述中,哪些是正确的(不确定)

不选这一项,其余全选:【Instrument Test:测试用例存储于项目的ohosTest目录,要求在HarmonyOS设备或模拟器上执行,兼容ArkTS与JS语言编写。】

你可能感兴趣的:(HarmonyOS,Next开发,鸿蒙应用开发者高级认证题库,华为,HarmonyOS,Next,ArkTS,鸿蒙应用开发者高级认证)