鸿蒙高级开发者认证题库(2)

20.项目需要为不同的设备形态(如手机、智能手表)提供定制化构建。请说明如何在DevEco studio中设置不同的构建配置,以生成针对不同设备的hap包?

A.在工程级别build-profile.ison5定义多个

product,在每个product的config/deviceType中定义不同的设备类型

B.在工程级别build-profile.json5定义多个product,在每个product的config/distributionFilter中定义不同的设备类型

C.在模块级别build-profilejson5定义多个target,在每个target的config/distributionFilter中定义不同的设备类型

D.在模块级别build-profile.json5定义多个target在每个target的config/deviceType中定义不同的设备类型

21.在开发HarmonyOS应用工程时,随着业务的发展,现在需要创建一个模块,关于在 DevEco Studio中创建Module,下列选项哪种方式是错误的?

A.在工程根目录下创建一个新的Directory,可在该目录下单击鼠标右键,选择New> Module...,创建

新的Module,此时module将创建在该文件目录下。

B.在hvigor目录下,单击鼠标右键,选择New>Module...,创建新的Module,此时module将创建在该文件目录下。

C.选中工程目录中任意文件,然后在菜单栏选择File > New> Module...,开始创建新的Module,此时该module将创建在工程根目录下。

D.鼠标移到工程目录顶部,单击鼠标右键,选择New>Module...,开始创建新的Module,此时该module将创建在工程根目录下。[数学公式]

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

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

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

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

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

23.项目中包含多个模块和数千行代码。随着开发的深入,项目中的ArkTS源代码文件逐渐积累了大量import语句,其中不乏未使用的import以及不规范的排序情况,关于DevEco studio的编辑器的“optimize Imports”,以下说法正确的是

A.在DevEco Studio中,没有直接的“Optimizemports”功能,需要安装第三方插件来实现这个需求。

B.为了快速清理未使用的import,可以选中项目根目录,按下快捷键Ctrl+Alt+0(在macOS上为Control+Option+0),让DevEco Studio自动识别并移除所有未使用的import,并自动按照预设规则排序和合并import。

C可以在菜单栏中依次点击“Code”>“ReformatCode”来达到优化import的目的,因为“Optimizelmports”功能已整合进“Reformat Code”中。

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

24.使用promptAction.showToast如何设置显示在其他应用之上?

A. 无需配置,默认显示在其他应用之上

B. ToastShowMode.DEFAULT

C.ToastShowMode.SYSTEM_TOP_MOST

D.ToastShowMode,TOP MOAST

25.为了使isShow参数值与半模态界面的状态同步,可以使用下列那种方式双向绑定参数?

D. Column() {

Button("transition modal 1")

.onClick(() => {

this.isShow = true

})

.fontSize(20)

.margin(10)

.bindSheet($$this.isShow, this.myBuilder(), {height: this.sheetHeight, dragBar: this.showDragBar, backgroundColor: Color.Green, onAppear: () => {console.log("BindSheet onAppear.")}, onDisappear: () => {console.log("BindSheet onDisappear.")}})

}

.justifyContent(FlexAlign.Center)

.width('100%')

.height('100%')

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

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

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

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

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

27.在方舟字节码的函数调用规范中,前三个参数表示的含义分别是

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

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

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

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

28.下面关于方舟字节码格式PREF_IMM16_V8_V8描述正确的是

A. 16位前缀操作码,16位立即数,2个8位寄存器

B. 16位前缀操作码,16位立即数,8位寄存器

C 8位操作码,8位立即数,2个8位寄存器

D.8位操作码,8位立即数,16位id,8位寄存器

29.下面关于方舟字节码格式IMM16_ID16_IMM8描述正确的是

A.8位操作码,16位立即数,2个8位寄存器

B.16位前缀操作码,16位立即数,8位寄存器

C.8位操作码,16位立即数,16位id,8位立即数

D 8位操作码,16位立即数,16位id,8位寄存器

30.以下关于垂直滚动Grid组件使用cachedcount属性的说明正确的是

A.设置cachedCount为1,则Grid在显示范围下方缓存1行Gridltem

B.设置cachedCount为1,则Grid在显示范围上下各缓存1行Gridtem

C.设置cachedCount为1,则Grid在显示范围下方缓存1个Gridltem

D.设置cachedCount为1,则Grid在显示范围上下各缓存1个Gridltem

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

struct MyComponent {

@State compwidth: number = 100;

@State compHeight: number = 100;

@State compRadius: number = 32;

build() {

Column() {

}

.backgroundColor("#ffcb3b3b")

.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;

showToast(`宽度${this.compwidth}`+`高度${this.compHeight}`+`圆角${this.compRadius}`)

})

A 2、3

B. 1、2、3

C. 1、3

D. 1、2

32.ArkTS支持以下哪个函数?

A.Object.getOwnPropertyDescriptor();

B. Object.hasOwnProperty(;

C.Object.getOwnPropertyDescriptors();

D. Object.values();

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

A. @style

B. @Shared

C. @State

D. @Sendable

34.作为一个应用开发者,想搭建运维平台,想在应用内定时读取当前的内存信息,可以通过()接口来实现。

A. hiAppEvent

B. hiDebug

C.hichecker

D. hiLog

35.以下哪些赋值语句在ArkTS中是合法。

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

A a3

B a4

C a1

D a2

36.依次点击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")];

})

}

}

}

37.开发者小李遇到了一个复杂的问题,该问题仅在特定的代码执行路径上出现,且难以复现。他使用的是C++进行核心算法开发,代码的逻辑密集且对性能要求极高,DevEco studio为C/C++开发者提供的高级调试能力,以下哪个能力可以帮助小李查看代码历史执行路径,回溯到关键的变量状态

A.传统调试模式:仅允许在当前断点暂停代码执行,查看调用堆栈和当前变量信息,但无法追溯历史执行状态

B.代码静态分析:提供静态代码检查工具,通过语法和逻辑分析帮助预防潜在错误,但不涉及运行时问题定位

C.实时代码修改与运行时效果查看:支持在调试过程中修改代码并立即查看修改效果,适用于快速迭代,但不聚焦于问题追溯

D.反向调试能力:允许开发者在调试过程中回退回到之前的代码行或断点,不仅查看过去的堆栈信息,还能重现历史的全局、静态和局部变量状态,帮助深入理解代码历史行为,特鄙视对于复杂逻辑和难以浮现的bug定位至关重要

38.当前您在开发一个ArkTS、Stage模型的Harmony0S工程,关于当前ArkTS工程目录结构,下列选项说法错误的是?

A. AppScope>appjson5:应用的全局配置信息。

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

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

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

39.开发者张工想要高效地管理Harmony0S设备中的文件,包括查看文件列表、进行文件搜索、新建及删除操作,以及在设备与PC间传输文件,而无需使用命令行工具。以下哪个选项最能准确概括张工能通过哪个工具直接在DevEco Studio界面完成上述所有操作

A. DevEco Studio的Terminal面板

B.DevEco Studio的Device File Browser

C.DevEco Studio的Log面板

D.DevEco Studio的Project Explorer

40.在使用DevEco Studio进行混合语言开发时,开发者小李通过Napi引用了Native 接口的文件(例如d.ts文件)。他想要直接从这些接口跳转到其对应的C/C++函数实现处进行代码审查。请从以下选项中选择最合适的操作步骤来帮助小李实现这一目标

A.小李应该打开包含TypeScript接口声明的文件,然后手动在项目中搜索相应的C/C++源文件,逐个检查以找到匹配的函数实现。

B.在声明或引用了Native接口的文件中,比如d.ts文件,小李可以直接选中接口名称,右键点击并在弹出的菜单中选择“Go To>Implementation(s)”(转到>实现)。还可以使用快捷键Ctrl+Alt+B;如果是macOS用户,则使用Command+Option+B,直接跳转到对应的C/C++函数实现位置

C.为了查看C/C++函数实现,小李必须先切换到DevEco Studio的C/C++开发环境视图,之后在项目的

资源管理器中找到对应的C/C++源文件手动打开,才能查看函数代码

D.小李可以将鼠标光标置于想要查看实现的接口名称上,按下鼠标右键,在出现的上下文菜单中寻找并点击“Find Usages”(查找用法),在结果中筛选出C/C++的实现。

41.当标记了@Reuseable的自定义组件实现了组件复用后,这个组件的复用范围是什么?

A.标记了@Reuseable的自定义组件的父组件范围内

B.整个应用内都可以复用

C.标记了@Reuseable的自定义组件的外层容器节点范围内

D.整个页面都可以复用

42.下面持续集成描述哪项是错误的:

A.持续集成(CI,Continuous Intergation): 指频繁的,一天多次将代码集成到主干。

B.Martin Fowler说过,"持续集成并不能消除Bug,而是让它们非常容易发现和改正。”

C.持续集成就是持续编译,二者异曲同工

D.持续集成在大型项目(有几十个项目组)也能应用,即便是项目组开发进度不统一也没问题

43.ArkUI组件复用的作用机制是减少了什么时间从而降低了丢帧率?

A.组件节点渲染时间

B.组件销毁时间

C.组件节点和对象的创建时间

D.数据挂载时间

哪些是持续部署最佳实践?

A. 灰度发布:先在小部分用户或区域进行部署,观察没问题后再全面推广

B.手工部署:持续部署可以采用手工部署的方式发布软件: 1、有一份非常详尽的文档,该文档描述了执行步骤及每个步骤中易出错的地方; 2、以手工测试来确认该应用程序是否运行正确; 3、在发布时,常常会修正一些在发布过程中发现的问题。

C.监控和回滚机制:实时监控部署后的应用状态,如有问题及时回滚,

D.环境一致性:保持开发、测试、生产等环境的高度一致性。

E.自动化部署流程:从代码提交到部署的整个流程应尽可能自动化。

F.开发完成之后再向类生产环境部署:当软件被第一次部署到类生产环境(比如试运行环境)时,就是大 部分开发工作完成时,至少是开发团队认为“该软件开发完成了”。

G. 手工配置管理 1、直接修改生产环境上的配置来改变系统配置; 2、集群中各节点的行为有所不同; 3、靠人手堂恢复环境。手动记载配置包括操作系统、应用服务器、关系型数据库管理系统、Web服务器或其他基础设施设置。

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

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

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

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

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

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

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

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星宇工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值