高级认证完整题库: 高级认证完整题库
题库文档链接(自取):https://pan.baidu.com/s/153tdk4dvv_mmleyzoqw9hq?pwd=xkgr
注:题目是乱序,每次考试,选项的顺序都不同
选择题 40道 40分
1、以下关于taskpool和worker的描述正确的是
b、taskpool支持任务延时执行
2、以下哪个装饰器用来表示并发共享对象。
b、@sendable
3、arkts支持以下哪些函数(不确定)
a、object.keys();
4、以下哪些赋值语句在arkts中是合法。
let value2: string | null = null;
b、value2
5、arkts支持以下哪个函数。(不确定)
a、object.values();
6、下面哪种转场效果在入场动画时,表现为从透明度为0、相对于组件正常显示位置×方向平移100vp的状态,到默认的透明度为1、相对于组件不平移的状态,且透明度动画和平移动画的动画时长均为2000ms
b、transitioneffect.opacity.animation({duration:2000}).combine(transitioneffect.translate({x:100}))
注:放到代码块里,方便查看
// 答案 =========================================
transitioneffect.opacity
.animation({duration:2000})
.combine(transitioneffect.translate({x:100}))
7、现有一个宽高分别为200px的xcomponent组件,其绑定了一个xcomponentcontroller(xccontroller),依次进行如下操作:
d、{ offsetx: 75, offsety: -100, surfacewidth: 150, surfaceheight: 500 }
不确定
8、根据上面代码,以下解释正确的是
d、在自定义组件page的build方法里改变状态变量是非法操作,可能导致未定义的异常ui行为。
9、已知下列代码pageone页面为navigation中的某一子页面,依次点击pageone页面中topagetwo按钮,pagetwo页面中topageone按钮,此时点击get按钮获取全部名为name的navdestination页面的位置索引为(不确定)
c:[0,2]
10、以下示例代码中可以进行动画的属性有哪些?
d、1、2
11、依次点击a、b、c、d四个按钮,其中不会触发ui刷新的是:
button("c")
.onclick(() => {
this.namelist[0].name = "jim"
})
12、从桌面冷启动如下应用,点击change按钮5次,整个过程中,代码中的2条log依次出现的次数,最初和最后画面上显示的【num = ?】的数字是(不确定)
d、2,4,1,2
13、使用promptaction.showtoast如何设置显示在其他应用之上?
c、toastshowmode.top_moast
14、在使用deveco studio的profiler进行harmonyos应用性能优化的流程中,以下哪个步骤最恰当地描述了开发者利用profiler工具进行性能问题识别、定位、优化及验证的完整过程
c、利用"realtime monitor"初步识别性能瓶颈,创建深度分析任务定位根因,根据分析结果优化代码,再用"realtime monitor"验证优化效果
15、deveco studio提供harmonyos应用/服务的ui预览界面与源代码文件间的双向预览功能,支持ets文件与预览器界面的双向预览。关于双向预览,下列选项说法错误的是?
b、双向预览不支持通过组件的属性面板实时修改属性或样式。
16、项目中包含多个模块和数千行代码。随着开发的深入,项目中的arkts源代码文件逐渐积累了大量import语句,其中不乏未使用的import以及不规范的排序情况,关于deveco studio的编辑器的"optimize imports",以下说法正确的是(不确定)
d、可以在菜单栏中依次点击"code">"reformat code"来达到优化import的目的,因为"optimize imports"功能已整合进"reformat code"中。
17、在使用deveco studio的profiler进行harmonyos应用或服务内存管理优化时,以下哪个描述最准确地概述了"allocation insight"功能在识别和解决内存问题中的作用
c、allocation insight通过分析应用服务运行时的内存分配及使用情况,辅助定位内存泄漏、内存抖动和溢出问题,支持优化内存使用
18、项目需要同时进行应用和元服务的开发,并针对当前项目工程中的代码可以分别构建出应用和元服务的包,如何在deveco studio中设置不同的构建配置,达成这个目的(不确定)
a、 在工程级别build-profile.json5定义两个product,将两个product的bundletype分别设置成app和atomicservice
19、harmonyos应用开发团队正着手优化一款面向全球市场的在线教育应用,该应用在特定课程直播环节出现了性能波动和响应延迟的问题,严重影响用户体验。打算利用deveco profiler来进行性能优化。deveco profiler其设计核心和主要优势是什么
c、deveco profiler依据top-down设计理念,通过高度整合的数据展示范式,提供从宏观到微观的性能数据分析,加速开发者定位和解决问题的过程
20、使用deveco studio进行复杂的跨设备功能开发与调试工作,期间频繁依赖本地模拟器来模拟多样化的设备环境。在这样的背景下,以下关于deveco studio本地模拟器所支持的规格与功能,哪一项描述是准确的
c、本地模拟器上运行的应用无需进行签名,简化了调试过程。
21、在一个包含多个模块(如entry、feature、har、hsp等)的大型harmonyos应用项目中,如果要对某个静态共享模块构建出静态构建包产物,如何通过deveco studio进行构建
c、选中har模块,点击build菜单栏make module 'har'
22、want参数的entities匹配规则错误的是
d、调用方传入的want参数的entities为空,待匹配应用组件的skills配置中的entities不为空,则entities匹配失败。
23、har(harmony archive)是harmonyos提供的共享包,以下关于har的描述错误的是
c、har不支持使用page页面。
24、应用开发中使用的各类资源文件,需要放入特定子目录中存储管理,以下关于资源说法错误的是
b、rawfile目录,支持创建多层子目录,子目录名称可以自定义,文件夹内可以自由放置各类资源文件。目录中的资源文件会被编译成二进制文件,并赋予资源文件id。
25、应用程序开发调试过程中,经常需要安装新应用进行调测,下面安装应用操作错误的是
d、hdc install -p ohosapp.hap
26、一个应用的一个uiablity,其exported字段配置为false,以下哪个场景可以拉起这个uiability。(不确定)
c、caller应用在后台,申请了长时任务,有start_invisible_ability权限;
27、一个应用有2个uiability组件,其module.json中abilities标签的配置如下方代码。(不确定)
在手机设备上,执行如下操作后:
1.启动uiability1,然后back键返回销毁uiability1;
2.启动uiability2,然后back键返回销毁uiability2;
3.启动uiability2,然后back键返回销毁uiability2;
进入多任务列表,能看看到该应用的几个任务视图:
d、3个
28、某个应用开发了一个uiabilitya,其启动模式是specified,并且对应的abilitystage的实现如下:(不确定)
c、3个
29、通过aa工具拉起com.example.test的entryability,并传参给entryability,具体参数是number类型的[key1, 1] [key2, 2] 和string类型的[key3, teststring] [key4, ’ '],那边下面那个aa命令是正确的:
d、aa start -b com.example.test -a entryability --pi key1 1 --pi key2 2 --ps key3 teststring --psn key4
30、应用发生崩溃,()接口可以获取到崩溃时调用栈
a、hiappevent
31、hiappevent提供的watcher接口,()属性不配置,会导致编译报错,产生"arkts compiler error".
b、name
32、为了提高性能,所以list组件支持懒加载,可以通过配置cachedcount属性设置缓存列表项的数量。当我们不设置list的属性cachedcount时,该属性的默认值是?
b、1
33、我们需要避免在逐帧调用的接口中执行耗时操作,下面哪个选项不属于上述的接口?
d、abouttoreuse
34、关于arkui的foreach和lazyforeach,下列说法错误的是?
c、长列表滚动场景,优先使用foreach。
35、关于自动化测试描述正确的是:
a、xts子系统是认证测试套件的集合,当前包括acts(application compatibility test suite)应用兼容性测试套件,后续会拓展dcts(device compatibility test suite)设备兼容性测试套件等。
36、以下关于hap(harmony ability package)说法正确的是()
c、应用工程如果包含多个module,在应用市场上架时,会将多个.hap文件打包成一个.app文件。
37、某app有a、b、c、d四个团队分别负责modulea、moduleb、modulec和moduled四个业务模块,随着业务的发展,modulea需要跳转到moduleb、modulec的页面,moduleb需要跳转到modulec、moduled的界面,modulec需要跳转到modulea的界面,moduled需要跳转到moduleb和modulec的界面。由于复杂的依赖关系,导致一旦有变化就需要知会各个团队,所以该团队的架构师想要解耦各个业务模块,以下哪些做法是不推荐的()
d、采用静态import方式引入对应跳转的页面。
38、以下对系统兼容性的理解正确的是
d、已发布的系统能力有可能会发生非兼容性变更,比如新增特性或修改问题导致的行为不兼容,这种情况下应用需要关注changelog并进行适配。
39、在modulea(hap)类型中有一个图片名为image.png,在moduleb(har类型)也存在一个图片名为image.png,而modulea依赖于moduleb,那么在modulea的编译产物hap包中,image.png存在情况是:
a、仅存在modulea的image.png
40、关于代理提醒开发使用的接口是
a、使用publishreminder发布一个提醒类通知,使用cancelreminder取消一个指定的提醒类通知
41、在方舟字节码的函数调用规范中,前三个参数表示的含义分别是
d、函数对象本身、new.target、this
42、下面关于方舟字节码格式imm16_id16_imm8描述正确的是
a、8位操作码,16位立即数,16位id,8位立即数
43、以下关于垂直滚动grid组件使用cachedcount属性的说明正确的是
a、设置cachedcount为1,则grid在显示范围上下各缓存1个gridltem
44、从桌面冷启动如下应用代码,点击change按钮5次,整个过程中,代码中的2条log依次出现的次数是:(不确定)
c、1,0
45、以下哪份代码可以实现下图grid布局
c、通过gridlayoutoptions
46、已知下列代码pageone页面为navigation中的某一子页面,依次点击pageone页面中topagetwo按钮,pagetwo页面中topageone按钮,此时获取当前页面的路由栈数量为多少(不确定)
c、3
47、在harmonyos应用开发中,当开发者遇到需要分析release版本应用的崩溃或异常堆栈信息时,为了准确地将堆栈追踪信息对应到源代码的具体位置,以下哪个描述是正确的做法或理解
c、deveco studio提供的release应用堆栈解析功能,要求开发者在遇到问题时,需上传构建产物中的特定文件(如so、source map、namecache等)到指定工具或界面,借助这些文件辅助解析堆栈信息,实现从release堆栈到源码的映射,便于快速定位问题
48、小李正在使用deveco studio进行harmony0s应用的开发工作,他需要对一个频繁被调用的函数calculatedata()进行重构,为了帮助小李高效地找到calculatedata()函数的所有引用位置,并确保重构时考虑周全,以下哪个步骤是正确的使用deveco studio的“find usages”功能的操作方法
c、小李只需将光标定位在calculatedata()函数名上,右键点击并选择“find usages",或者直接使用快捷键alt+ f7(macos为option+ f7),deveco studio会自动列出该函数在项目中的所有引用位置。
49、在使用deveco studio的profiler进行harmonyos应用或服务性能分析时,面对应用出现卡顿、加载慢等性能瓶颈问题,以下哪个描述最贴切地说明了“time场景分析任务”的功能及其对开发者优化流程的帮助
d、time场景分析任务展示热点区域内的cpu和进程级调用栈耗时情况,支持代码跳转,助力开发者快速定位并优化耗时较长的代码段
50、开发者小林正在使用deveco studio开发一款harmonyos应用, 并在真机上进行调试。他在运行应用的过程中突然发现一处ui布局需要微调,希望在不中断当前应用运行的情况下看到调整效果,基于deveco studio提供的hot reload (热重载)能力,以下哪一种做法能让小林最有效地实现他的需求
b、在不关闭应用的情况下,直接修改代码并保存,借助hot reload功能在真机上实时查看布局调整的效果
51、项目需要为不同的设备形态(如手机、智能手表)提供定制化构建。请说明如何在deveco studio中设置不同的构建配置,以生成针对不同设备的hap包?(不确定)
c、在模块级别build-profile.json5定义多个target,在每个target的config/devicetype中定义不同的设备类型
52、一个复杂的项目,该项目不仅包含主入口模块(entry module),还有多个特性的功能模块(feature modules/hsp),并且这些模块存在着相互调用关系。为了确保在调试过程中能够完整地测试所有交互逻辑,需要将涉及到的所有模块的hap包都部署到目标设备上。请从以下选项中选择正确的操作步骤来配置deveco studio,以便一次性部署和调试项目中的多个模块
c、进入“run > edit configurations”菜单,“deploy multi hap”选项卡下,勾选“deploy multi hap packages”,随后在列表中选择需要部署的模块。
53、项目中涉及多个类的继承与重写。为了快速实现子类对父类方法的重写,小华想利用deveco studio提供的便捷功能来提高开发效率。他了解到,通过一个特定的操作流程,可以直接依据父类的模板生成子类中需要重写的方法代码,而无需手动编写完整方法体,在deveco studio中,如何正确使用override methods功能来快速生成子类需要重写的方法代码
d、将光标定位到子类的定义处,按下ctrl+o(或右键单击选择generate... > override methods),在弹出的对话框中选择 要重写的方法,点击ok完成生成。
54、下面的配置存在有几处错误()
// module.json5配置文件:
{
"module": {
"name": "entry",
// ...
"abilities": [
{
"name": "entryability",
"srcentry": "./ets/entryability/entryability.ets",
// ...
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"ohos.want.action.home"
]
}
],
"metadata": [
{
"name": "ohos.entry.shortcuts",
"resource": "$profile:shortcuts_config"
}
]
}
]
}
}
// 在/resources/base/profile/目录下配置shortcuts_config.json配置文件:
{
"shortcuts": [
{
"shortcutid": "id_test1",
// ========================== 【shortcutlabel】字符串不符合匹配规则
"label": "shortcutlabel",
"icon": "$media:shortcuticon",
"wants": [
{
"bundlename": "com.ohos.hello",
"modulename": "entry",
"abilityname": "entryability"
}
]
}
]
}
a、1
55、下面的配置存在有几处错误()(不确定)
// app.json5配置文件:
{
"app": {
"bundlename": "com.example.myapplication",
"vendor": "example",
"versioncode": 1000000,
"versionname": "1.0.2",
"icon": "$media:app_icon",
"label": "$string:app_name",
"bundletype": "app"
}
}
// module.json5配置文件:
{
"module": {
"name": "feature",
//...
"atomicservice": {
"preloads":[
{
"modulename": "feature"
}
]
}
}
}
b、2
56、(1)在uiability的oncreate生命周期中通过eventhub的on注册“event1”和“event2”事件。
(2)在ui组件的click处理事件中调用如下的eventhubfunc,连续点击2次该控件后,运行日志输出是什么:
b、答案↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
[example].[entry].[entryability] receive. []
[example].[entry].[entryability] receive. [2,"test2"]
[examp1e].[entry].[entryability] receive. [2,"test2"]
57、singleton模式的uiability,在冷启动时生命周期的执行顺序是:
a、oncreate->onwindowstagecreate->onforeground
58、开发者开发了一个应用,该应用只有一个hap包,其module.json5中abilities的配置如下所示,包含1个ulability(无web组件)、1个formextensionability组件 、1个workschedulerextensionability组件,那么该应用在运行过程中,最多会存在几个应用进程:(不确定)
c、3个
59、hiappevent提供的watcher接口,需要订阅到os的崩溃事件,正确的实现方式()
// c
hiappevent.addwatcher({
name: "watcher",
appeventfilters: [
{
domain: hiappevent.domain.os,
names: [hiappevent.event.app_crash]
}
],
onreceive: (domain: string, appeventgroups: array<hiappevent.appeventgroup>) => {
}
})
60、当标记了@reuseable的自定义组件实现了组件复用后,这个组件的复用范围是什么?
b、标记了@reuseable的自定义组件的父组件范围内
61、当使用状态变量进行arkui组件间数据通信的时候,如果两个组件间没有直接的嵌套关系(非父子和祖孙关系组件),但是他们又属于同一页面,最佳的装饰器应该选用哪个?
c、localstorage
62、某app依赖了3个ohpm库,这3个库占用的体积都比较大。在app的技术架构中,有多个hap和多个hsp均依赖这3个库,为了减少app的首包大小,以下哪些做法是无效的?
d、将这3个ohpm库封装到har包中,并对外提供必要的接口。
63、以下关于应用架构技术选型说法不正确的是()
d、随着业务的发展,应用功能会越来越多,某些功能可以做成动态加载,动态加载的模块采用har工程来构建,方便复用和共享。
64、关于短时任务开发使用的接口是
c、使用requestsuspenddelay申请任务, 使用getremainingdelaytime获取任务剩余时间
65、以下关于arkui navdestination组件的生命周期执行顺序中正确的是
d、onwillappear->onappear->onwillshow->onshow->onwillhide->onhidden->onwilldisappear->ondisappear
66、为了使isshow参数值与半模态界面的状态同步,可以使用下列那种方式双向绑定isshow参数?
$$this.isshow
=== 双【$】符号修饰
build() {
column() {
button("transition modal 1")
.onclick(() => {
this.isshow = true
})
.fontsize(20)
.margin(10)
.bindsheet($$this.isshow, this.mybuilder(), {
height: this.sheetheight,
})
}
.justifycontent(flexalign.center)
.width('100%')
.height('100%')
}
}
d、d
67、张工正在使用deveco studio进行一个复杂项目的开发工作,项目中包含了成千上万行代码且涉及众多模块。在重构代码的过程中,他意识到需要对一个核心类名进行更改,考虑到这个类在整个项目中被广泛引用,手动修改不仅耗时且容易出错。基于deveco studio提供的代码编辑功能,以下哪个描述最准确地概述了张工如何高效且安全地完成对类名的更改,同时确保整个项目中所有相关引用同步更新?
c、张工选中 需要更名的类名,使用快捷键shift+f6或右键菜单refactor -> rename,在弹出框中输入新名称并选择替换范围 后,点击“refactor”完成更名操作,确保所有相关引用自动更新。
68、开发者小张正在使用deveco studio开发一款harmonyos应用,他遇到了一个仅在应用实际运行环境中出现的问题,需要调试己部署在设备上的应用以定位问题根源,为了能够在应用已经运行的情况下介入调试,小张应该采用哪种调试方法
b、attach debugger to process,这允许他连接到正在运行的应用进程进行调试。
69、在组件中,经常需要使用字符串、图片等资源。hsp中的组件需要使用资源时,一般将其所用资源放在hsp包内,而非放在hsp的使用方处,以符合高内聚低耦合的原则。下面访问hsp资源错误的是
b、使用相对路径的方式,访问hsp中的资源。
image("../../resources/base/media/example.png")
.id('example')
.borderradius('48px')
70、可以通过下面那个接口拉起导航类的垂域面板
a、startabilitybytype
71、作为应用开发者,你使用hiappevent订阅了崩溃事件。应用崩溃后,从onreceive接口返回的appeventinfo中()属性可以获取崩溃调用栈信息。
c、params
72、下面持续交付&持续部署描述哪个是正确的:
b、在持续交付实践中,要考虑处理故障回滚和紧急修复,以确保系统在出现问题时能够快速恢复和修复。
73、某业务团队的架构师发现某个特性用的频率比较少,但是这个特性占用空间资源还是比较大的。为了减少首包下载体积,准备将该特性解耦出来,并对外提供api方便主模块调用。以下说法正确的是()
d、将该特性做成按需加载的hsp包,暴露接口给主模块使用。
74、以下关于动态import说法正确的是()
c、动态import支持加载hsp模块、har模块、ohpm包、native库
75、如果想让outer button响应事件,hittestbehavior该怎么配
b、hittestmode.transparent
76、在使用deveco studio进行混合语言开发时,开发者小李通过napi引用了native 接口的文件(例如d.ts文件)。他想要直接从这些接口跳转到其对应的c/c++函数实现处进行代码审查。请从以下选项中选择最合适的操作步骤来帮助小李实现这一目标
a、在声明或引用 了native接口的文件中,比如d.ts文件,小李可以直接选中接口名称,右键点击并在弹出的菜单中选择“go to > implementation(s)”(转到 > 实现)。还可以使用快捷键ctri+alt+b;如果是macos用户,则使用command+option+b,直接跳转到对应的c/c++函数实现位置。
77、harmonyos提供了多种包结构,每种包编译后的产物都不同,下面说法错误的是
a、app包编译后的产物是.app文件。
。
78、下面持续集成描述哪项是错误的:(不确定)
c、持续集成就是持续编译, 二者异曲同工
79、关于延迟任务开发使用的接口是
c、使用startwork申请任务,使用stopwork取消任务,使用getworkstatus获取任务状态
80、开发者张工想要高效地管理harmonyos设备中的文件,包括查看文件列表、进行文件搜索、新建及删除操作,以及在设备与pc间传输文件,而无需使用命令行工具。以下哪个选项最能准确概括张工能通过哪个工具直接在deveco studio界面完成上述所有操作
d、deveco studio的device file browser
81、开发者在编写arkui代码时,想要提前预览下所编写的组件的效果,下述哪个组件可以使用deveco studio previewer正常预览?
// d
@preview
@component
struct titlesample {
@storageprop('title') title: string = 'placeholder';
build() {
text(this.title)
}
}
82、arkui组件复用的作用机制是减少了什么时间从而降低了丢帧率?
d、组件节点和对象的创建时间
83、关于代码门禁理解正确的是:
a、代码门禁则是在代码合并之前就验证代码来保护主干分支的完整性。通过这种方式,可以保护主分支代码避免因合码导致的构建中断,以确保master分支代码始终是可部署的,并且不会因明显的错误而影响到你正在并行开发的同事工作。
84、下面关于方舟字节码格式pref_imm16_v8_v8描述正确的是
c、16位前缀操作码,16位立即数,2个8位寄存器
85、以下哪些赋值语句在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();
b、a2
86、text组件不支持以下哪种使用方式?
// c
@entry
@component
struct styledstringdemo {
scroll: scroller = new scroller();
layout: textlayoutmanager = new textlayoutmanager()
controller1: textcontroller = new textcontroller();
async onpageshow() {
this.controller1.setlayout (this.layout)
}
build() {
column() {
text (undefined, { controller: this.controller1 })
}.width('100%')
}
}
87、当前您在开发一个arkts、stage模型的harmonyos工程,关于当前arkts工程目录结构,下列选项说法错误的是?
c、build-profile.json5:应用级编译构建任务脚本。
88、当您开始开发一个应用/服务时,首先需要根据工程创建向导,创建一个新的工程,工具会自动生成对应的代码和资源模板。关于新建工程,下列选项说法正确的是?
d、compatible sdk是兼容的最低api version。
89、在编译构建hap时,会从hap模块及依赖的模块中收集资源文件,如果不同模块下的资源文件出现重名冲突时,会按照优先级进行覆盖,现在有一个hap依赖了两个har,依赖配置如下所示:
// oh-package.json5
{
"dependencies": {
"dayjs": "^1.10.4"
"lottie": "^2.0.0"
}
}
在资源覆盖时,以下优先级排序正确的是()
c、appscope>hap包自身模块>dayjs模块>lottie模块
90、作为一个应用开发者,想搭建运维平台,想在应用内定时读取当前的内存信息,可以通过()接口来实现。
d、hidebug
91、如果要实现row组件内的子元素均匀排列,且第一个元素与行首对齐,最后一个元素与行尾对齐,需要使用justifycontent的哪个枚举值
a、spacebetween
92、在一个包含多个模块(如entry、feature、 service、 library等)的大型harmonyos应用项目中,如果某个模块feature对另外一个公共库模块library有依赖,如何通过deveco studio正确配置项目依赖关系
b、在feature的oh-package.json5文件的dependencies字段中配置library的依赖
93、开发者小李遇到了一个复杂的问题,该问题仅在特定的代码执行路径上出现,且难以复现。他使用的是c++进行核心算法开发,代码的逻辑密集且对性能要求极高,deveco studio为c/c++开发者提供的高级调试能力,以下哪个能力可以帮助小李查看代码历史执行路径,回溯到关键的变量状态
c、反向调试能力:允许开发者在调试过程中回退回到之前的代码行或断点,不仅查看过去的堆栈信息,还能重现历史的全局、静态和局部变量状态,帮助深入理解代码历史行为,特别是对于复杂逻辑和难以复现的bug定位至关重要
94、在开发harmonyos应用工程时,随着业务的发展,现在需要创建一个模块,关于在deveco studio中创建module,下列选项哪种方式是错误的?
d、在hvigor目录下,单击鼠标右键,选择new > module... 创建新的module,此时module将创建在该文件目录下。
95、一个应用项目工程中,模块依赖关系如下图所示,那么在最终编译结果.app文件中,存在的编译产物是:
d、a.hap + d.hsp
96、小华正在使用deveco studio开发一款基于harmonyos的arkui应用,该应用需要实现一个功能,即当用户点击按钮时,通过arkts/js api调用系统的分享功能。小华对具体的api调用细节不太熟悉,如何通过deveco studio快速查阅相关的api文档。
b、小华将鼠标悬停在编辑器中已经键入或打算键入的api调用(例如@system.router.push)上,等待编辑器自动弹出悬浮提示框,显示该api的简要信息和不同版本参数说明。随后,点击提示框右下角的“show in api reference”链接,直接跳转到详尽的api参考文档页面。
97、websocket连接开发步骤描述错误的是
e、调用session.start方法开启metadata数据输出
98、
99、
100、
多选题 20道 60分
1、在开发过程中,我们可以将每个功能模块作为一个独立的module进行开发。关于module,下列选项说法正确的是?
a、feature类型的module:应用的动态特性模块,编译后生成feature类型的hap。一个应用中可以包含一个或多个feature类型的hap,也可以不包含。
b、shared library:动态共享库。hsp中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。
c、static library:静态共享库。har中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝。
2、某业务团队发现用户对他们app的某个特性使用率并不高,为了节省用户首次下载安装包的体积,考虑将该特性做成按需加载,那么推荐该特性使用的工程模块类型是?
a、hap
c、hsp
3、哪些是持续部署最佳实践?
a、监控和回滚机制:实时监控部署后的应用状态,如有问题及时回滚。
b、自动化部署流程:从代码提交到部署的整个流程应尽可能自动化。
d、灰度发布:先在小部分用户或区域进行部署,观察没问题后再全面推广。
g、环境一致性:保持开发、测试、生产等环境的高度一致性。
4、以下代码片段哪几处违反了arkts语法规范。
b、delete p.x;
c、p.z = 2.0;
d、p.x = 'hello!';
5、以下napi代码有问题的是(不确定)
// b
napi_ref g_ref = nullptr;
/***** excute in main thread *****/
static napi_value demoinmainthread(napi_env env, napi_callback_info info)
{
napi_value string = nullptr;
napi_create_string_utf8(env, "bar", napi_auto_length, &string);
napi_create_reference(env, string, 1, &g_ref);
return string;
}
/***** excute in worker thread *****/
static napi_value demoinworkerthread(napi_env env, napi_callback_info info)
{
napi_value string = nullptr;
napi_get_reference_value(env, g_ref, &string);
napi_value object = nullptr;
napi_create_object(env, &object);
napi_set_named_property(env, object, "foo", string);
return object;
}
// d
static napi_value demo(napi_env env, napi_callback_info info)
{
size_t argc = 1;
napi_value args[1] = {nullptr};
napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
napi_value sizeobj = nullptr;
napi_handle_scope scope = nullptr;
napi_open_handle_scope(env, &scope);
napi_call_function(env, nullptr, args[0], 0, nullptr, &sizeobj);
napi_close_handle_scope(env, scope);
int64_t width = 0;
napi_value result = nullptr;
napi_get_element(env, sizeobj, 0, &result);
napi_get_value_int64(env, result, &width);
return result;
}
6、下面关于混淆的描述正确的是
a、代码混淆已经被集成了到sdk中,可以在deveco studio中方便地使用。
b、针对工程源码的混淆可以降低工程被破解攻击的风险,缩短函数名、类名和属性名,减小应用的大小。
c、api10及以上版本的stage模型、编译模式为release时,默认开启代码混淆功能;默认的混淆功能仅会混淆函数参数和局部变量的名称。
d、混淆支持arkts/ts/js文件的混淆
7、下面关于方舟字节码指令含义说明正确的是(不确定)
a、假设寄存器v0存放了对象a,累加器(acc)存放了对象b,那么执行指令"ida v0"后,v0存放对象a,acc存放对象a
d、假设寄存器v0存放了对象a,寄存器v1存放了对象b,那么执行指令"mov v0,v1"后,v0存放对象b,v1存放对象b
8、下面关于arkts中import用法,正确的是
a、import { export1 as alias1 } from "ets file name";
b、import defaultexport from "ets file name"
c、import * as name from "ets file name"
d、import { export1 } from "ets file name";
9、以下关于arkts线程实例间传输实现方式描述正确的是(不确定)
a、task.setclonelist([a]); taskpool.execute(task).then() => {});,taskpool 共享传输实现方式
b、taskpool.execute(task).then(() => {});,taskpool 共享传输实现方式
c、w.postmessage(a);,worker 共享传输实现方式
d、w.postmessagewithsharedsendable(a);,worker 共享传输实现方式
10、以下代码片段哪几个函数违反了arkts语法规范。
function foo1(value1?: number, value2: number) {
if(value1 == undefined){
return value2;
}
return value1 + value2;
}
function foo4( ...arrary: number[], value: number) {
return value;
}
11、在arkts中,以下哪些属性的声明是正确的。
class c {
value1: number = 0;
value2?: number = null;
value3: number | undefined = undefined;
value4?: number;
}
a、value1
c、value3
d、value4
12、如下abc 3处手势,有机会执行的是哪几处?(不确定)
// a
/*.gesture(
tapgesture({ count: 2 })
.onaction((event: gestureevent) => {
if (event) {
this.value = json.stringify(event.fingerlist[0])
}
})
)*/
// c
/*.parallelgesture(
pangesture({pandirection.vertical})
.onactionupdate((event: gestureevent)=>{
console.log("zcb onactionupdate event offsety " + event.offsety + "this.lastoffset " + this.lastoffset)
})
)*/
13、以下哪些实现方式可实现文本字号20的效果
// 不选带有minfontsize(20)的,其余3个都选
14、依次点击a、b、c、d四个按钮,其中不会触发ui刷新的是:
button("a")
.onclick(() => {
this.count = 0;
})
button("b")
.onclick(() => {
for (let i = 0; i < 1000; i++) {
this.count = i;
}
for (let i = 1000; i > 0; i--){
this.count = i;
}
this.count--;
})
15、如何实现类似下图布局
// 不选grid(下面这种代码排版),其余2个都选
build() {
scroll() {
column() {
grid() {
griditem() {
16、code linter针对arkts/ts代码进行最佳实践/编程规范方面的检查,最佳实践/编程规范方面的检查规则可以配置,针对codelinter的配 置项一下哪些说法是正确的
b、files:配置待检查的文件名单,如未指定目录,规则适用于所有文件,例如: [“**/*.ets”,“**/*.js”,“**/*.ts”]。
c、ignore:配置无需检查的文件目录,其指定的目录或文件需使用相对路径格式,相对于code-linter.json5所在工程根目录,例如:build/**/*。
d、ruleset:配置检查使用的规则集,规则集支持一次导入多条规则。
17、一个应用通常会包含多种功能,将不同的功能特性按模块来划分和管理是一种良好的设计方式。在开发过程中,我们可以将每个功能模块作为一个独立的module进行开发,下面关于module的说法正确的是
a、library类型的module,用于实现代码和资源的共享,有两种类型,分别为static library和shared library两种类型。
b、entry类型的module,是应用的主模块,一个应用只能包含唯一一个entry类型的hap。
c、ability类型的module,用于实现应用的功能和特性,有两种类型,分别为entry和feature。
d、feature类型的module,应用的动态特性模块,一个应用中可以包含一个或多个feature类型的模块,也可以不包
18、在大型软件工程中,一般会伴随着多团队开发,各团队开发自己的业务模块,最后再由集成交付团队集成到一起,下面哪些是大型应用模块化开发最佳实践
a、避免用户首次下载应用耗时过长,及过多占用用户空间,不常用功能做成按需加载。
b、若多个模块依赖了不同版本的har,使用ohpm的overrides机制配置指定使用哪个版本的har,以减少包大小。
c、使用路由表进行模块间解耦。
d、一次上架多端部署。
19、通过如下openlink的接口启动,如下哪些配置的uiability不可能被拉起(不确定)
// a
{
"name": "targetability",
"skills": [
{
"actions": [
"ohos.want.action.viedata",
],
"entities": [
"entity.system.browsable",
],
"uris": [
{
"scheme": "http",
"host": "www.test.com",
"port": "8080",
"path": "path"
}
]
}
]
}
// c
{
"name": "targetability",
"skills": [
{
"actions": [
"ohos.want.action.senddata",
],
"entities": [
"entity.system.browsable",
],
"uris": [
{
"scheme": "http",
"host": "www.test.com",
"port": "8080",
"path": "path",
"autoverify": ture
}
]
}
]
}
// d
{
"name": "targetability",
"skills": [
{
"actions": [
"ohos.want.action.senddata",
],
"entities": [
"entity.system.browsable",
],
"uris": [
{
"scheme": "https",
"host": "www.test.com",
"port": "8080",
"path": "path",
"autoverify": ture
}
]
}
]
}
20、某个应用的启动框架配置文件详细信息如下,以下说法正确的是:
a、startuptask_005会在主线程执行
b、startuptask_006会在abilitystage的oncreate前初始化完成
c、startuptask_001会在startuptask_004之后执行;
21、使用arkui组件复用之后,还是没有显著提升列表滑动场景的性能,属于组件复用未生效可能的原因有?(不确定)
a、页面嵌套了过多自定义组件。
b、在abouttoreuse回调函数中更新了冗余的状态变量
d、复用的自定义组件中使用if等条件渲染语句导致结构不相同,未使用reuseld标记。
22、下面关于动态import描述正确的是
a、动态导入import()是个异步接口,调用后将返回一个promise
c、动态import根据入参是否为常量字符串分为常量动态import和变量动态import两种
d、har模块间只有变量动态import时可以进行模块解耦
23、下面关于混淆规则描述正确的是
a、-disable-obfuscation:关闭所有混淆
c、-enable-export-obfuscation:开启直接导入或导出的类或对象的名称和属性名混淆
24、在arkts中,以下代码片段正确的是
// a
function fn(x: string | number): string {
return 'value: ' + x;
}
type functype = (ns: string) => string;
let func: functype = fn;
// b
function fn(x: string | number): string {
return 'value:' + x;
}
type functype = (ns: string | number) => string;
let func: functype = fn;
25、以下代码片段哪几处违反了arkts语法规范。
function foo(value1: number, value2: number) {
return value1 + value2;
}
foo();
foo(1, 2);
foo(1, 2, 3);
foo(1, 2, 3, 4);
a、foo();
c、foo(1, 2, 3);
d、foo(1, 2, 3, 4);
26、以下关于taskpool和worker的描述正确的是
a、worker的任务执行时长上限是无限制
d、taskpool支持设置任务的优先级
27、list组件onscrollindex事件触发时机是
a、list组件显示区域内第一个子组件或最后一个子组件或中间位置子组件索引值变化时触发
d、list组件列表滚动时每帧触发
28、如果想让grid上的捏合手势生效,而不跟grid上的滚动手势形成冲突,. xxxx?手势接口应该怎么配置?
c、parallelgesture
d、prioritygesture
29、在基于stage模型开发的应用项目代码下,都存在一个app.json5配置文件, 用于配置应用的全局信息,以下app.json5配置文件错误的是
// a
{
"app": {
"bundlename": "com.example.myapplication",
"vendor": "example",
"versioncode": 1000000,
"versionname" : "1.0.2",
"icon": "$media:app_icon",
// ========================== 【label】字段的值需要引用
"label": "app_name",
"bundletype": "app"
}
}
// c
{
"app": {
"bundlename": "com.example.myapplication",
"vendor": "example", "versioncode": 1000000,
// ========================== 缺少字段【versionname】
"icon": "$media:app_icon",
"label": "$string:app_name",
"bundletype": "app",
}
}
30、使用如下的代码去启动一个ability时,哪种skills定义的组件能够被匹配到:
// a
"skills": [
{
"uris":[
{
"scheme": "https",
"host": "www.test.com",
"type": "text/plain"
}
]
}
]
// d
"skills":[
{
"uris":[
{
"scheme": "https",
"type": "text/*"
}
]
}
]
31、以下哪些方式可以实现arkweb同层渲染能力()
// a
web(...).enablenativeembedmode(true)//.registernativeembedrule("embed", "native")
<embed id="view" type="native/contents" width="100%" height="100%" style="background-color:red"/>
// d
web(...).enablenativeembedmode(true).registernativeembedrule("native", "test")
<object id="view" type="native/contents" width="100%" height="100%" style="background-color:red"/>
32、用户购买商品后,你需要及时发放相关权益。但实际应用场景中,若出现异常将导致应用无法知道用户实际是否支付成功,从而无法及时发放权益,即出现掉单情况。为了确保权益发放,你需要在以下哪些场景检查用户是否存在己购未发货的商品:
a、createpurchase请求返回1001860051-由于已经拥有该商品,购买失败时
b、createpurchase请求返回1001860001-内部错误时
c、应用启动时
33、arkts对并发编程api和能力进行了增强,以下描述正确的是
b、cpu密集型任务场景中, 当任务不需要长时间(3分钟) 占据后台线程, 而是一个个独立的任务时,推荐使用taskpool进行开发。
c、在并发api的形式上,目前主要有两种:worker和taskpool。
34、arkts中不能使用以下哪些类型。
a、any
d、unknown
35、应用开发的有些场景中,如果希望根据条件导入模块或者按需导入模块,可以使用动态导入代替静态导入,下面导入场景中适合使用动态import的是
a、当被导入的模块,在加载时并不存在,需要异步获取。
b、当静态导入的模块很明显的占用了大量的系统内存且被使用的可能性很低。
c、当被导入的模块说明符, 需要动态构建。
d、当静态导入的模 块很明显的降低了代码的加载速度且被使用的可能性很低,或者并不需要马上使用它。
36、以下代码片段哪几个class/interface违反了arkts语法规范。
a、instructor
c、circle
37、下面代码符合node-api开发规范的是
// a - demo3
static napi_value demo3(napi_env env, napi_callback_info info)
{
size_t argc = 2;
napi_value argv[2] = {nullptr};
napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr);
//业务代码
return nullptr;
}
// c - demo2
static napi_value demo2(napi_env env, napi_callback_info info)
{
size_t argc = 0;
napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr);
if (argc == 0) {
return nullptr;
}
napi_value* argv = new napi_value[argc];
napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
//业务代码
delete argv;
return nullptr;
}
38、arkts是鸿蒙生态的应用开发语言。下列说法正确的是
a、arkts在保持typescript (简称ts)基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开发期能检测更多错误,提升代码健壮性,并实现更好的运行性能。
c、针对javascript(简称js)/ts并发能力支持有限的问题,arkts对并发编程api和能力进行了增强。
d、arkts提供了声明式ui范式、状态管理支持等相应的能力,让开发者可以以更简洁、更自然的方式开发应用。
39、lmage组件以下哪些方式可显示图片?
// 4个全选
40、harmonyos应用开发者小张,正在利用deveco studio进 行一款复杂应用的ui界面调试。小张了解到arkui inspector是deveco studio内置的一项强大工具, 能够显著提升ui调试效率。基于arkui inspector的特性描述,下列哪些描述是正确的
a、ui快照管理:支持导出应用的ui界面为快照图片,并允许这些快照被导入回arkui inspector中,便于离线分析或分享讨论ui设计方案
b、性能监控:提供详细的ui渲染性能指标,帮助开发者识别布局瓶颈和渲染效率问题,从而优化应用性能
c、ui效果查看:开发者能够查看连接真机上运行的应用程序的ui显示效果,页面组件树结构,以及选中组件的属性信息
d、交互式组件选择:用户既可以在组件树视图中选择组件,使ui界面上对应组件高亮显示并展示其属性详情;也可以直接在ui布局显示界面上点击选择组件
41、以下关于localstorage的说法正确有哪些?
b、被@component装饰的组件最多可以访问一个localstorage实例和appstorage,未被@entry装饰的组件不可被独立分配localstorage实例,只能接受父组件的localstorage实例。
c、组件树的根节点,即被@entry装饰的@component,可以被分配一个localstorage实例, 此组件的所有子组件实例将自动获得对该localstorage实例的访问权限。
d、应用程序可以创建多个localstorage实例,localstorage实例可以在页面内共享,也可以通过getshared接口,获取在uiability里创建的getshared,实现跨页面、uiability内共享 。
42、在基于stage模型开发的应用项目代码下,每个模块都存在一个module.json5配置文件,用于配置模块的基本信息,以下module.json5配置文件正确的是
// a
{
"module": {
"name": "bname",
"type":" shared",
"devicetypes": [
"default",
"tablet"
],
"deliverywithinstall": 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
}
]
}
}
43、hiappevent提供的watcher接口,订阅到的系统事件,哪些包含hilog日志?
c、卡死事件
d、崩溃事件
44、当前动态import支持导入的模块类型有哪些?
a、动态import支持加载ohpm模块
b、动态import支持加载本地har模块
c、动态import支持加载hsp模块
d、动态import支持加载远程har模块
45、arkts是鸿蒙生态的应用开发语言。以下哪些选项是arkts的设计理念。
a、通过规范强化静态检查和分析,减少运行时的类型检查,从而降低了运行时负载,提升执行性能。
b、通过规范强化静态检查和分析, 使得许多错误在编译时可以被检测出来,降低代码运行错误的风险。
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(");
47、以下哪些是可以在navigation中使用pushpathbyname接口传递的params的参数类型(不确定)
a、arraybuffer
c、record<string,string>
d、string
48、hsp支持导出arkul组件、接口,供应用内的其他hap/hsp引用,下面正确的是(不确定)
a、导出arkui组件
b、导出native方法,在hsp中也可以包含c++编写的so。对于so中的native方法,hsp通过间接的方式导出,以导出liblibrary.so的乘法接口multi为例
c、导出ts类和方法
49、下面关于方舟字节码文件格式描述正确的是
c、方舟字节码文件是arkts/ts/js编译后的二进制产物
d、方舟字节码文件中数据类型uint16_t表示16-bit无符号整数,采用小端字节序
50、在开发harmonyos应用的多元化测试环境中,deveco studio引入了本地模拟器(local emulator)作为重要工具,旨在帮助开发者在个人开发机器上高效模拟harmonyos环境,进行应用或服务的快速运行与细致调试。请根据本地模拟器的实际应用场景与系统要求,选出所有正确的描述选项
b、为了保证流畅的运行和调试体验,本地模拟器推荐macos系统版本至少为12.5以上。
c、deveco studio的本地模拟器允许开发者在个人电脑上模拟harmonyos环境,便于应用或服务的运行与调试。
d、mac计算机配置方面,为了确保本地模拟器的稳定运行,推荐至少配备8gb ram。
51、下面关于混淆的描述正确的是
a、支持顶层作用域名称、 属性名称、文件名称等多种混淆功能
b、修改应用混淆配置,新配置需要重新全量编译应用才能生效
c、在工程build-profile.json5中的obfuscation.ruleoptions.files字段中配置该工程的混淆配置,该配置仅在编译该工程时生 效。
d、可以在har模块工程的build-profile.json5中的obfuscation.consumerfiles字段中配置导出的混淆配置,该配置仅在编译 依赖该har的模块时生效。
52、如下哪些方式可实现图片动态播放?
// 不选带有下面这个的,其余3个全选
private async getpixelmaps() {
// ==================== 怎么没有定义mypixelmaps????????
mypixelmaps.push(await this.getpixmapfrommedia($r('app.media.icon'))) //对应资源图片名后缀为png
return mypixelmaps;
}
53、下面关于混淆规则描述正确的是
b、-keep-file-name [,identifirs,...]:指定要保留的文件/文件夹的名称
d、-print-namecache filepath:将名称缓存保存 到指定的文件路径。
54、下面关于node-api数据类型描述正确的是
a、napi_status:是一个枚举数据类型,表示node-api接口返回的状态信息
c、napi_env:用于表示node-api执行时的上下文
55、以下数据类型中,哪些是sendable数据 。(不确定)
import { lang } from '@kit.arkts';
class c {}
interface i extends lang.isendable {}
a、interface i
c、string
d、number
56、处于安全因素考虑,arkts不支持以下哪些语法。
a、with()
b、new function('a', 'b', 'return a + b')
c、eval()
57、在arkts中,以下哪些声明类的方式是正确的。
class c1 {
value: number = 0;
}
class c2 {
value: number;
constructor(value: number) {
this.value = value;
}
}
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、自动化构建:确保构建过程是完全自动化的,减少人为错误。
c、全面的测试套件:包括单元测试、集成测试、功能测试等,以提高代码质量。
e、频繁提交代码:鼓励开发人员经常提交小的代码更改, 以便更快地发现问题。
f、代码审查:在集成前进行代码审查,及时发现潜在问题。
g、快速反馈机制:让开发人员能迅速得知集成结果和测试状态。
60、下面代码符合arkts编程规范的是(不确定,把所有选项列出)
let maxcount = 10;
let iscompleted = false;
let pointx = 0;
let pointy = 0;
// 没有定义【condition】
if (condition) {
console.1og('success');
}
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功能,分析应用的资源消耗情况,寻找可能的瓶颈
63、为了加快构建速度,提高开发效率,可以如何调整hvigor配置,从而优化构建速度
a、启用hvigor的incremental,在增量场景下检查任务是否可以跳过
b、启动hvigor的daemon模式,在增量场景下复用缓存
d、启用hvigor的parallel,在增量场景下进行并行编译处理
发表评论