HarmonyOS应用开发高级认证考试答案一--单选题

avatar
作者
猴君
阅读量:0

亲爱的读者们,我在这里承诺会尽最大努力确保答案的准确性。虽然有些题目可能会有错误,但是您的反馈对我而言是非常宝贵的。如果您发现任何错误或者有任何建议,都欢迎在评论区或私信中告诉我。您的每一条反馈都将帮助我不断完善这篇文章,让更多的读者获得丰富且准确的信息。谢谢您的支持和理解!

选项顺序每次考试的顺序都会不同,要看清楚


单选题


1、下面关于方舟字节码格式PREF_IMM16_v8_v8描述正确的

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


2、ARKTS支持以下哪个函数?(C)

A.Object.getOwnPropertyDescriptor();

B.Object.getOwnPropertyDescriptors();

C.Object.values();

D.Object.hasOwnProperty();


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

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


4、以下哪些赋值语句在ArkTS中合法

class c()

let value1 : number =null;

let value2 : string l null = null;

let value3: string l undefined =null;

let value4 : C = null

value2


5、Text组件不支持以下哪种ABCD代码中哪种使用方式?(C 

A:

@Entry

@Component

struct TextExample{

build(){

Column({space:8}){

Text('textshadow').fontsize(9).fontcolor(0xcccccc).margin(15).width('90%') }}}

B:

@Entry

@Component

struct SpanExample{build(){Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifycontent: FlexA1ign.SpaceBetween }){

Text(){Span('In Line')Span('Component')Span('!')}}..width('100%').height(250).padding({ left:35,right: 35,top: 35 })

}}

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%')}}

D:

@Entry

@Component

struct styledStringDemo {

scroll:Scroller =new Scroller();

mutableStyledString: Mutablestyledstring = new Mutablestyledstring("test hello world", [{

start:0,length:5,

styledKey:styledstringKey.FONT,

styledValue:new Textstyle({fontColor:Color.Pink })}]);

controller1:TextController=new TextController();

async onPageshow(){

this.controller1.setstyledstring(this.mutablestyledstring)}

build(){

Column(){Text(undefined,{ controller: this.controller1 })}.width('100%')}}


6、以下哪个装饰器用来表示并发共享对象?(D)

A.@Style

B.@Shared

C.@State

D.@Sendable


7、以下关于ArkUI NavDestination组件的生命周期执行顺序中正确的是 

onWillappear->onAppear->onWillShow->onShow->onWillHide->onHidden->onWillDisappear->onDisappear


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

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

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

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

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


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

A. ToastShowMode TOP_MOAST

B. ToastShowMode.DEFAULT

C. ToastShowMode SYSTEM TOP.MOST

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


10、依次点击ABCD四个按钮,其中不会触发ui刷新的是        列表

buttonC  包含Jim的按钮


11、从桌面冷启动如下应用,点击Change按钮5次,整个过程中,代码中的2条log依次出现的次数

1,0


12. 现有一个宽高分别为200px的XComponent组件,其绑定了一个XComponentController(xcController)依次进行如下操作,(1)xcController.setXComponentSurfaceRect( {surfacewidth: 150, surfaceHeight: 500})

(2)设置XComponent组件的padding为{top:5px,left:10px,bottom:15px,right:20px}

(3)将XComponent组件大小改为300pxx300px(4)给xComponent组件设置一个宽度为2px的边框

(5)xcController.setXComponentSurfaceRect({ offsetX:-20,offsetY: 50, surfacewidth:200,surfaceHeight : -100})之后,调用xcController.getXComponentSurfaceRect()的返回值为   B

A.{offsetx:81,offsetY:-89, surfaceWidth: 200, surfaceHeight 0 )

B{offsetX:75,offsetY:-100,surfacewidth: 150, surfaceHeight. 500 }

C.(offsetx:-20,offsetY:50, surfaceWidth: 200, surfaceHeight: 500 }

D.{offsetX: 81,offsetY:-89,surfaceWidth: 150, surfaceHeight: 500 }


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

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

B. 设置cachedCount为1,则Grid在显示范国下方级存1个Gridltem

C. 设置cachedCount为1,则Grid在显示范国上下各缓存1行Griditem

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


14. 在使用DevEco Studio的Profiler进行Harmony0S应用性能优化的流程中,以下哪个步骤最恰当地描述了开发者利用Profiler工具进行性能问题识别、定位、优化及验证的完整过程   C

A. 首先使用“Realtime Monitor”实时监控,观察应用类源消耗,一旦发现CPU或内存异常,直接修改代码并重新编译

B. 在发现应用性能不佳时,直接查看代码逻辑,凭经验修改后;利用Profiler的“Realtime Monitor”确认资源消耗是否降低

C. 利用“Realtime Monitor”初步识别性能瓶颈,创建深度分析任务定位很因。根据分析结果优化代码,再用“Realtime Monior”验证优化效果

D. 仅通过创建深度分析任务,利用perf数据详编分析性能颈,改代码后,不再进行验证直接发布应用


15、一个复杂的项目,该项目不仅包含主入口模块(Entry Module),还有多个特性的功能模块(Feature Modules/HSP),并且这些模块间存在着相互调用关系。为了确保在调试过程中能够完整地测试所有交互逻辑,需要将涉及到的所有模块的HAP包都部署到目标设备上。请从以下选项中选择正确的操作步骤来配置DevEco Studio,以便一次性部署和调试项目中的多个模块   A

A进入“Run> Edit Configurations"菜单,在“Deploy Multi Hap”选项卡下,勾选“Deploy Multi HapPackages”,随后在列表中选择需要部署的模块。

B直接点击运行按钮,DevEco Studio会弹出对话框询问需要部署哪些模块,从中选择需要的模块后开始调试。

C在项目结构界面手动选择每个模块,单独编译并逐一将生成的HAP包通过HDC命令推送到设备上。

D无需特殊配置,DevEco Studio会自动检测到项目中的所有模块依赖,并在每次调试运行时自动部署所有相关HAP包。


16、当您开始开发一个应用/服务时,首先需要根据工程创建向导,创建一个新的工程,工具会自动生成对应的代码和资源模板。关于新建工程,下列选项说法正确的是?  B 

A. 应用包名(Bundle name)必须为以点号(.)分隔的字符串,且至少包含三段,每段中仪允许使用英文字号、数字 如"com.example.myapplication

B. Compatible SDK是兼容的最低API Version

C. 工程文件本地存储路径[Save location)允许包含中文字符。

D. 创建用于Lite Wearable设备的工程,可以选择Native C ++工程模板


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

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


18、小李正在使用DevEco studio进行Harmonyos应用的开发工作,他需要对一个频繁被调用的函数calculateData()进行重构,为了帮助小李高效地找到calculateData()函数的所有引用位置,并确保重构时考虑周全,以下哪个步骤是正确的使用DevEco studio的"FindUsages”功能的操作方法

小李只需将光标定位在calculateData)函数名上,右键点击并选择"Find Usages”,或者直接使用快捷键Alt +F7(macOS为Option + F7) ,DevEco Studio会自动列出该函数在项目中的所有引用位置。


19、在使用DevEco studio的Profiler进行Harmonyos应用或服务内存管理优化时,以下哪个描述最准确地概述了“Allocation Insight”功能在识别和解决内存问题中的作用

Allocation Insight通过分析应用服务运行时的内存分配及使用情况,辅助定位内存泄漏、内存抖动和溢出问题,支持优化内存使用


20、在使用DevEco Studio的Profiler进行Harmonyos应用或服务性能分析时,面对应用出现卡顿、加载慢等性能瓶颈问题,以下哪个描述最贴切地说明了“Time场景分析任务”的功能及其对开发者优化流程的帮助

Time场景分析任务展示热点区域内的CPU和进程级调用栈耗时情况,支持代码跳转,助力开发者快速定位并优化耗时较长的代码段


21.开发者在编写ArkUI代码时,想要提前预览下所编写的组件的效果,下述哪个组件可以使用DevEco studio Previewer正常预览?

@Preview @Component struct TitleSample { @StorageProp('title'”) title: string = 'PlaceHolder'; build( ){Text(this.title)}}


22. HAR(Harmony Archive)是Harmony0S提供的共享包,以下关于HAR的描述错误的是    C

A. HAR可以作为二方库和三方库提供给其他应用使用,如果要对代码资产进行保护时,建饮开启混淆能力

B. HAR不支持引用AppScope目录中的资源。在编译构建时,AppScope中的内容不会打包到HAR中,因此会导致HAR资源引用失败

C. HAR不支持使用page页面

D. HAR不支持在设备上单独安装/运行,只能作为应用模块的依赖项被引用


23. 在编译构建HAP时,会从HAP模块及依赖的模块中收集资源文件,如果不同模块下的资源文件出现重名冲突时,会按照优先级进行覆盖,现在有一个HAP依赖了两个HAR,依赖配置如下所示

// oh-package.json5

{

  "dependencies": {

    "dayjs": "^1.10.4",

    "lottie": "^2.0.0"

  }

}

AppScope>HAP包自身模块>dayjs模块>lottie模块


24.根据代码,以下ABCD解释正确的是(C)

enum Mode {

fullScreen,halfScreen

}

@Entry

@Component

struct Page{

@State title: string =”@state mode:Mode = Mode.fullScreen;

isShownTitle(): boolean{if(this.mode == Mode.fullScreen){this.title = "Title";

return true;

} else {

this.title="Section";return false;}}

build(){

Column(){

if(this.isShownTitle()){Text(`${this.title}`)}else{

Text(`${this.title}`)}

ChangeMode({ mode: this.mode})

}}}

@component

struct ChangeMode {@Prop mode: Mode;build(){

Row({space:20}){

Button('full screen').onclick(()=>{this.mode = Mode.fullScreen;})Button('half screen').onclick(()=>{this.mode = Mode.halfScreen;

})}}}

A本例子可以运行起来,所以代码没有问题,

B为了避免@Prop的拷贝,可以优化使用@Link,在该例子中行为和@Prop-样。

C在ChangeMode里改变mode的值,会触发其父组件Page的Title内容的切换

D在自定义组件Page的build方法里改变状态变量是非法操作,可能导致未定义的异堂UI行为.


25.一个应用的一个UIAblity,其exported字段配置为false,以下哪个场景可以拉起这个

UIAblity.caller应用在后台,申请了长时任务,有START_INVISIBLE_ABILITY权限;


26.以下关于ArkUI NavDestination组件的生命周期执行顺序中正确的是?(A)

A.onWillappear->onAppear->onWillShow->onShow->onWillHide->onHidden->onWillDisappear->onDisappear

B.onWillappear->onWillShow->onShow->onAppear->onWillHide->onHidden->onWillDisappear->onDisappear

C.onWillappear->onAppear->onWillShow->onShow->onWillHide->onWillDisappear->onHidden->onDisappear

D.onWillappear->onAppear->onWillShow->onShow->onWillDisappear->onWillHide->onHidden->onDisappear


27.singleton模式的UIAbility,在冷启动时生命周期的执行顺序是:

onCreate->onWindowStageCreate->onForeground


28.hiAppEvent提供的Watcher接口,()属性不配置,会导致编译报错,产生"ArkTS compiler Error" 

name


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

hiDebug


30.当使用状态变量进行ArkUI组件间数据通信的时候,如果两个组件间没有直接的嵌套关系(非父子和祖孙关系组件),但是他们又属于同一页面,最佳的装饰器应该选用哪个?(C)

A.@Provide+@Consume

B.@State+@Link

C.LocalStorage

D.AppStorage


广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!