基础认证题库请移步: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
注:题目是乱序,每次考试,选项的顺序都不同
单选题题库 - 序号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)
发表评论