harmonyOS开发学习课程

HarmonyOS第一课

1.【习题】运行Hello World工程 

判断题

1. DevEco Studio是开发HarmonyOS应用的一站式集成开发环境。(√)

2. main_pages.json存放页面page路径配置信息。(√)

单选题

1. 在stage模型中,下列配置文件属于AppScope文件夹的是?

A. main_pages.json

B. module.json5

C. app.json5

D. package.json

答案:C

多选题

1. 如何在DevEco Studio中创建新项目?

A. 在计算机上创建一个新文件,并将其命名为“new harmonyOS项目”

B. 如果已打开项目,从DevEco Studio菜单选择'file>new>Create Project'

C. 如果第一次打开DevEco Studio,在欢迎页点击“Create new Project”

答案:BC

2. module.json5配置文件中,包含了以下哪些信息?

A. ability的相关配置信息

B. 模块名

C. 应用的版本号

D. 模块类型

答案:ABD

2.【习题】ArkTS基础知识

判断题

1. 循环渲染ForEach可以从数据源中迭代获取数据,并为每个数组项创建相应的组件。(√)

2. @Link变量不能在组件内部进行初始化。(√)

单选题

1. 用哪一种装饰器修饰的struct表示该结构体具有组件化能力?

A. @Component

B. @Entry

C. @Builder

D. @Preview

答案:A

2. 用哪一种装饰器修饰的自定义组件可作为页面入口组件?

A. @Component

B. @Entry

C. @Builder

D. @Preview

答案:B

多选题

1. 下面哪些函数是自定义组件的生命周期函数?

A. aboutToAppear

B. aboutToDisappear

C. onPageShow

D. onPageHide

E. onBackPress

答案:ABCDE

2. 下面哪些装饰器可以用于管理自定义组件中变量的状态?

A. @Component

B. @Entry

C. @State

D. @Link

答案:CD

3.【习题】应用程序框架 

判断题

1. 一个应用只能有一个UIAbility。(×)

2. 创建的Empty Ability模板工程,初始会生成一个UIAbility文件。(√)

3. 每调用一次router.pushUrl()方法,页面路由栈数量均会加1。(×)

单选题

1. API9及以上,router.pushUrl()方法,默认的跳转页面使用的模式是哪一种?

A. standard

B. Single

C. Specified

答案:A

2. UIAbility启动模式需要在module.json5文件中配置哪个字段?

A. module

B. skills

C. launchType

D. abilities

答案:C

多选题

1. API9及以上,router.pushUrl()方法的mode参数可以配置为以下哪几种跳转页面使用的模式?

A. Standard

B. Single

C. Specified

答案:AB

2. UIAbility的生命周期有哪几个状态?

A. Create

B. WindowStageCreate

C. Foreground

D. Background

E. WindowStageDestroy

F. Destroy

答案:ACDF

UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,WindowStageCreate和WindowStageDestroy为窗口管理器(WindowStage)在UIAbility中管理UI界面功能的两个生命周期回调,从而实现UIAbility与窗口之间的弱耦合。

3. UIAbility有哪几种的启动模式?

A. multiton

B. singleton

C. specified

答案:ABC

4.【习题】构建漂亮的页面 

判断题

1. 在Column容器中的子组件默认是按照从上到下的垂直方向布局的,其主轴的方向是垂直方向,在Row容器中的组件默认是按照从左到右的水平方向布局的,其主轴的方向是水平方向。(√)

2. List容器可以沿水平方向排列,也可以沿垂直方向排列。(√)

3. 当Tabs组件的参数barPosition为BarPosition.End时,页签位于页面底部。(×)

4. Resource是资源引用类型,用于设置组件属性的值,可以定义组件的颜色、文本大小、组件大小等属性。(√)

单选题

1. 使用TextInput完成一个密码输入框,推荐设置type属性为下面哪个值?

A. InputType.Normal

B. InputType.Password

C. InputType.Email

D. InputType.Number

答案:B

2. 使用Image加载网络图片,需要以下那种权限?

A. ohos.permission.USE_BLUETOOTH

B. ohos.permission.INTERNET

C. ohos.permission.REQUIRE_FORM

D. ohos.permission.LOCATION

答案:B

3. 下面哪个组件层次结构是错误的?

A. List>ListItem>Column

B. Column>List>ListItem

C. Grid>Row>GridItem

D. Grid>GridItem

答案:C

多选题

1. Row容器的主轴是水平方向,交叉轴是垂直方向,其参数类型为VerticalAlign (垂直对齐),VerticalAlign 定义了以下几种类型?

A. Top

B. Bottom

C. Start

D. End

E. Center

答案:ABE

2. 下面哪些组件是容器组件?

A. Button

B. Row

C. Column

D. Image

E. TextInput

答案:BC

3. 关于Tabs组件页签的位置设置,下面描述正确的是?

A. 当barPosition为Start(默认值),vertical属性为false时(默认值),页签位于容器顶部。

B. 当barPosition为Start(默认值) ,vertical属性为true时,页签位于容器左侧。

C. 当barPosition为End ,vertical属性为false(默认值)时,页签位于容器底部。

D. 当barPosition为End ,vertical属性为true时,页签位于容器右侧。

答案:ABCD

5.【习题】构建更加丰富的页面 

判断题

1. @State修饰的属性不允许在本地进行初始化。(×)

2. @CustomDialog装饰器用于装饰自定义弹窗组件,使得弹窗可以自定义内容及样式。(√)

3. 将Video组件的controls属性设置为false时,不会显示控制视频播放的控制栏。(√)

4. @Prop修饰的属性值发生变化时,此状态变化不会传递到其父组件。(√)

单选题

1. 使用Video组件播放网络视频时,需要以下哪种权限?

A. ohos.permission.READ_MEDIA

B. ohos.permission.INTERNET

C. ohos.permission.WRITE_MEDIA

D. ohos.permission.LOCATION

答案:B

2. 下列哪种组合方式可以实现子组件从父子组件单向状态同步。

A. @State和@Link

B. @Provide和@Consume

C. @State和@Prop

D. @Observed和@ObjectLink

答案:C

多选题

1. 下列哪些状态装饰器修饰的属性必须在本地进行初始化。

A. @State

B. @Prop

C. @Link

D. @Provide

E. @Consume

答案:AD

2. ArkUI提供了下面哪些弹窗功能。

A. AlertDialog

B. TextPickerDialog

C. DatePickerDialog

D. @CustomDialog

E. TimePickerDialog

答案:ABCDE

6.【习题】属性动画 

判断题

1. 属性动画中产生动画的属性可以在任意位置声明。(×)

2. 属性动画中改变属性时需触发UI状态更新。(√)

单选题

1. 属性animation可以在哪些组件中使用?

A. 只能基础组件

B. 只能容器组件

C. 基础组件和容器组件

D. 以上都不对

答案:C

2. 属性动画中如何设置反向播放?

A. PlayMode.Normal

B. PlayMode.Alternate

C. PlayMode.AlternateReverse

D. PlayMode.Reverse

答案:D

3. 下面哪种情况不会回调onFinish函数?

A. delay设置为 0

B. tempo设置为 1

C. iterations设置为 -1

D. playMode设置为 PlayMode.Reverse

答案:C

4. 属性动画中关于animation参数说法错误的是?

A. 参数tempo默认值为1.0

B. 参数delay不能大于duration

C. 参数curve可以不设置

D. 参数iterations可以不设置

答案:B

多选题

1. 属性动画支持哪些属性?

A. width

B. rotate

C. opacity

D. scale

答案:ABCD

2. 属性动画中animation的参数有哪些?

A. playMode

B. curve

C. delay

D. onFinish

答案:ABCD

7.【习题】 从网络获取数据 

判断题

1. 在http模块中,多个请求可以使用同一个httpRequest对象,httpRequest对象可以复用。(×)

每一个httpRequest对象对应一个http请求任务,不可复用

2. 使用http模块发起网络请求后,可以使用destroy方法中断网络请求。(√)

3. Web组件onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) => boolean)事件,返回false时候触发网页默认弹窗。(×)

当onConfirm回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。

单选题

1. 使用http发起网络请求,需要以下哪种权限?

A. ohos.permission.USE_BLUETOOTH

B. ohos.permission.INTERNET

C. ohos.permission.REQUIRE_FORM

D. ohos.permission.LOCATION

答案:B

2. 向服务器提交表单数据,以下哪种请求方式比较合适?

A. RequestMethod.GET

B. RequestMethod.POST

C. RequestMethod.PUT

D. RequestMethod.DELETE

答案:B

3. 下列关于Web组件的属性,描述错误的是?

A. 设置是否开启应用中文件系统的访问,默认启用。$rawfile(filepath/filename)中rawfile路径的文件不受该属性影响而限制访问。

B. imageAccess设置是否允许自动加载图片资源,默认允许。

C. javaScriptAccess设置是否允许执行JavaScript脚本,默认不允许执行。

D. zoomAccess设置是否支持手势缩放,默认允许执行缩放。

答案:C

4. 关于请求返回的响应码ResponseCode,下列描述错误的是?

A. ResponseCode.OK的值为200,表示请求成功。一般用于GET与POST请求。

B. ResponseCode.NOT_FOUND的值为404,表示服务器无法根据客户端的请求找到资源(网页)。

C. ResponseCode.INTERNAL_ERROR的值为500,表示服务器内部错误,无法完成请求。

D. ResponseCode.GONE的值为404,表示客户端请求的资源已经不存在。

答案:D

多选题

1. Web组件支持下列哪些属性或事件?

A. fileAccess(fileAccess: boolean)

B. javaScriptAccess(javaScriptAccess: boolean)

C. on(type: 'headerReceive', callback: AsyncCallback): void

D. onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) => boolean)

E. destroy(): void

答案:ABD

2. 关于http模块描述正确的是?

A. http请求支持get、post、put等常用的请求方式。

B. 可以使用on('headersReceive')订阅请求响应头。

C. post请求的参数可以在extraData中指定。

D. 执行createHttp成功后,返回一个httpRequest对象,里面包括request、destroy、on和off方法。

答案:ABCD

3. 关于Web组件描述正确的是?

A. Web组件是提供具有网页显示能力的一种组件。

B. Web组件传入的地址可以是本地资源也可以是网络资源。

C. WebController可以控制Web组件的各种行为,例如网页的前进、后退等功能。

D. 当访问在线网页时,需添加网络权限。

答案:ABCD

8.【习题】保存应用数据 

判断题

1. 首选项是关系型数据库。(×)

2. 应用中涉及到Student信息,如包含姓名,性别,年龄,身高等信息可以用首选项来存储(×)

3. 同一应用或进程中每个文件仅存在一个Preferences实例。(√)

单选题

1. 使用首选项要导入的包是哪个?

A. @ohos.data.rdb

B. @ohos.data.preferences

C. @ohos.router

D. @ohos.data.storage

答案:B

2. 首选项的数据持久化后是放在哪里?

A. 内存中

B. 数据库表中

C. 文件中

D. 云端

答案:C

3. 下面哪个接口不是首选项提供的API接口?

A. get()

B. update()

C. put()

D. flush()

答案:B

多选题

1. HarmonyOS提供的数据管理的方式都有哪些?

A. 首选项

B. 分布式数据服务

C. 关系数据库

D. 分布式数据对象

答案:ABCD

数据管理为开发者提供数据存储、数据管理能力。数据管理模块包括用户首选项、键值型数据管理、关系型数据管理、分布式数据对象和跨应用数据管理。HarmonyOS标准系统支持典型的存储数据形态,包括用户首选项、键值型数据库、关系型数据库。

用户首选项(Preferences):通常用于保存应用的配置信息。访问速度快、效率高,但不适合需要存储大量数据的场景。键值型数据库(KV-Store):一种非关系型数据库,适合很少数据关系和业务关系的业务数据存储。关系型数据库(RelationalStore):一种关系型数据库,广泛用于应用中的关系型数据的处理,包括一系列的增、删、改、查等接口。

2. 下面说法正确的有?

A. 首选项遵循ACID特性

B. 首选项以Key-Value形式存取数据

C. 首选项存储数据数量建议不超过1万条

D. 首选项的key为String类型

答案:BCD

首选项的特点是:

1、以Key-Value形式存储数据

Key是不重复的关键字,Value是数据值。

2、非关系型数据库

区别于关系型数据库,它不保证遵循ACID(Atomicity, Consistency, Isolation and Durability)特性,数据之间无关系。

进程中每个文件仅存在一个Preferences实例,应用获取到实例后,可以从中读取数据,或者将数据存入实例中。通过调用flush方法可以将实例中的数据回写到文件里。

9.【习题】给应用添加通知和提醒 

判断题

1. 构造进度条模板通知,name字段当前需要固定配置为downloadTemplate。(√)

2. 给通知设置分发时间,需要设置showDeliveryTime为false。(×)

3. OpenHarmony提供后台代理提醒功能,在应用退居后台或退出后,计时和提醒通知功能被系统后台代理接管。(√)

单选题

1. 将通道设置为下面哪个类型,可以显示横幅通知?

A. SlotType.SOCIAL_COMMUNICATION

B. SlotType.SERVICE_INFORMATION

C. SlotType.CONTENT_INFORMATION

D. SlotType.OTHER_TYPES

答案:A

2. 下列哪个是从API 9 开始支持的后台代理提醒功能模块。

A. @ohos.reminderAgentManager

B. @ohos.reminderManager

C. @ohos.reminderAgent

D. @ohos.notificationManager

答案:A

多选题

1. 下面哪些方法可以移除通知?

A. cancel

B. cancelAll

C. removeSlot

答案:AB

2. 后台代理提醒业务分为哪几种类型。

A. 倒计时类

B. 日历类

C. 闹钟类

D. 日程类

答案:ABC

10.【习题】HarmonyOS应用/元服务上架 

判断题

1. 元服务发布的国家与地区仅限于“中国大陆”(√)

2. 编译打包的软件包存放在项目目录build > outputs > default下(√)

单选题

1. 创建应用时,应用包名需要和app.json5或者config.json文件中哪个字段保持一致?

A. package

B. name

C. bundleName

答案:C

2. 发布应用时需要创建证书,证书类型选择什么类型?

A. 调试证书

B. 发布证书

答案:B

3. 发布应用时需要创建Profile时,类型选择什么类型?

A. 调试

B. 发布

答案:B

4. 上传发布软件包时,软件包的格式是什么?

A. .zip

B. .app

C. .apk

D. .hap

答案:B

5. 发布后的应用可以在哪里获取?

A. 华为应用市场

B. 华为服务中心

C. 华为生态市场

答案:A

HarmonyOS主题课

1.【习题】使用DevEco Studio高效开发 

单选题

1. 用哪一种装饰器修饰的组件可作为页面入口组件?

A. @Component

B. @Entry

C. @Preview

D. @Builder

答案:B

2. ArkTS Stage模型支持API Version 9,关于其工程目录结构说法正确的是?

A. oh-package.json5用于存放应用级配置信息,包括签名、产品配置等

B. build-profile.json5用于配置三方包声明文件的入口及包名

C. module.json5包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息

D. app.json5用于编写应用级编译构建任务脚本

答案:C

3. DevEco Studio提供模拟器供开发者运行和调试HarmonyOS应用/服务,以下说法错误的是?

A. 本地模拟器是创建和运行在本地计算机上的,需要登录授权

B. 本地模拟器支持音量大小调节、电池电量调节、屏幕旋转等功能

C. 向本地模拟器安装应用/服务的时候,不需要给应用签名

D. DevEco Studio会启动应用/服务的编译构建,完成后应用/服务即可运行在本地模拟器上

答案:A

多选题

1. DevEco Studio支持使用多种语言进行应用/服务的开发,包括ArkTS、JS和C/C++。在编写应用/服务阶段,可以通过以下哪些方法提升编码效率?

A. 提供代码的智能补齐能力,编辑器工具会分析上下文并理解项目内容,并根据输入的内容,提示可补齐的类、方法、字段和关键字的名称等

B. 在编辑器中调用ArkTS API接口或ArkTS/JS组件时,支持在编辑器中快速、精准调取出对应的参考文档

C. 代码格式化功能可以帮助您快速的调整和规范代码格式,提升代码的美观度和可读性

D. 如果输入的语法不符合编码规范,或者出现语义语法错误,编辑器会显示错误或警告

答案:ABCD

2. 关于预览器的使用,以下哪些说法是正确的?

A. 在开发界面UI代码过程中,如果添加或删除了UI组件,您只需Ctrl+S进行保存,然后预览器就会立即刷新预览结果

B. 在预览器界面,可以在预览器中操作应用/服务的界面交互动作,如单击、跳转、滑动等,与应用/服务运行在真机设备上的界面交互体验一致

C. 组件预览通过在组件前添加注解@Preview实现

D. 页面预览通过在工程的ets文件头部添加注解@Entry实现

答案:ABCD

2.【习题】三方库 

判断题

1. 三方组件是开发者在系统能力的基础上进行了一层具体功能的封装,对其能力进行拓展的工具 (√)

2. 可以通过ohpm uninstall 指令下载指定的三方库(×)

3. lottie使用loadAnimation方法加载动画(√)

单选题

1. 通过ohpm安装lottie后,在哪个文件中会生成相关的配置信息?

A. module.json5

B. oh-package.json5

C. app.json5

D. main_page.json

答案:B

2. lottie订阅事件的API为?

A. lottie.setSpeed()

B. lottie.setDirection()

C. animationItem.addEventListener()

D. animationItem.removeEventListener()

答案:C

多选题

1. 下列属于lottie提供的动画控制API的是?

A. lottie.play()

B. lottie.pause()

C. lottie.stop()

D. lottie.goToAndPlay()

答案:ABCD

3.【习题】HarmonyOS云开发 

判断题

1. HarmonyOS云开发可以在一个项目中同时实现端侧和云侧功能的开发。(√)

2. 进行端云一体开发时,开发者需要精通前端、后端不同的开发语言。(×)

单选题

1. 开发者在DevEco Studio中,可以通过什么形式进行HarmonyOS云开发?

A. IDE插件

B. 工程模板

C. 命令行工具

D. 可视化工具

答案:B

2. HarmonyOS云开发当前支持最低API版本是多少?

A. API 6

B. API 7

C. API 8

D. API 9

答案:D

多选题

1. HarmonyOS云开发工程结构分哪些部分?

A. 端开发工程(Application)

B. 云开发工程(CloudProgram)

C. 端侧公共库(External Libraries)

D. 公共资源库(Resource)

答案:ABC

2. HarmonyOS云开发工程创建后,会自动开通哪些服务?

A. 云函数

B. 云数据库

C. 云存储

D. 认证服务

答案:ABCD

开发者能力认证

HarmonyOS应用开发者基础认证

判断题

1.首选项preferences是以Key-Value形式存储数据,其中Key是可以重复。(×)

2.Web组件对于所有的网页都可以使用zoom(factor: number)方法进行缩放。(×)

3.每一个自定义组件都有自己的生命周期(√)

4.Tabs组件仅可包含子组件TabsContent,每一个页签对应一个内容视图即TabContet组件。(√)

5.在Column和Row容器组件中,justifyContent用于设置子组件在主轴方向上的对齐格式,alignItems用于设置子组件在交叉轴方向上的对齐格式。(√)

6.所有使用@Component修饰的自定义组件都支持onPageShow,onBackPress和onPageHide生命周期函数。(×)

7.@CustomDialog装饰器用于装饰自定义弹窗组件,使得弹窗可以动态设置内容及样式。(√)

8.每调用一次router.pushUrl()方法,默认情况下,页面栈数量会加1,页面栈支持的最大页面数量为32。(√)

9.Video组件可以支持本地视频路径和网络路径播放。播放网络视频时,需要申请权限ohos.permission.INTERNET。(√)

10.使用http模块发起网络请求时,必须要使用on('headersReceive')订阅请求头,请求才会成功。(×)

11.Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件。一个应用可以包含一个或多个Ability。(√)

单选题

12.用哪一种装饰器修饰的组件可作为页面入口组件?

A. @Component

B. @Entry

C. @Preview

D. @Builder

答案:B

13.下列哪种组合方式不能实现子组件从父子组件之间双向数据同步。

A. @State和@Link

B. @Provide和@Consume

C. @Observed和@ObjectLink

D.@State和@Prop

答案:D

14.关于Tabs组件页签的位置设置,下面描述错误的是

A. 当barPosition为Start(默认值),vertical属性为false时(默认值),页签位于容器顶部。

B. 当barPosition为Start(默认值) ,vertical属性为true时,页签位于容器左侧

C. 当barPosition为End ,vertical属性为false(默认值)时,页签位于容器底部。

D. 当barPosition为End ,vertical属性为true时,页签位于容器底部。

答案:D

15.关于Resource是资源引用类型描述错误的是:

A. Resource是资源引用类型,用于设置组件属性的值。

B. 通过"$r('app.type.name')"的形式引用应用资源,app代表是应用内resources目录中定义的资源,type代表资源类型(或资源的存放位置)。

C. Resource支持所有的数据类型。

D. 系统可以根据当前配置加载合适的Resource资源,例如,开发者可以根据屏幕尺寸呈现不同的布局效果,或根据语言设置提供不同的字符串。

答案:C

16.下面哪个组件不能包含子组件:

A. Row

B. Button

C. Text

D. Loading Progress

答案:D

17.Row组件中有两个Text组件,如果使用justifyContent对齐方式,下面哪个属性可以实现左右两端对齐:

A. FlexAlign.Start

B. FlexAlign.SpaceEvenly

C. FlexAlign.End

D. FlexAlign.SpaceBetween

答案:D

18.在下面哪个文件中可以设置页面的路径配置信息?

A. main_pages.json

B. module.json5

C. app.json5

D. package.json

答案:A

19.首选项preferences值的存储支持哪些数据类型?

A. 数字型

B. 字符型

C. 布尔型

D. 数字型、字符型、布尔型以及这3种类型的数组类型。

答案:D

20.关于Button组件,下面哪个样式是胶囊型按钮:

A. ButtonType.Capsule

B. ButtonType.Normal

C. ButtonType.Circle

D. 以上都不是

答案:A

21.使用Image组件加载网络图片需要如下哪种权限?

A. ohos.permission.READ_MEDIA

B. ohos.permission.INTERNET

C. ohos.permission.GET_NETWORK_INFO

D. ohos.permission.DISTRIBUTED_DATASYNC

答案:B

22.下面哪个方法,可以跳转到一个新页面,并销毁当前页面。

A. router.pushUrl()

B. router.replaceUrl()

C. router.back()

D. router.clear()

答案:B

23.关于Video组件的回调事件,下列说法错误的是:

A. onStart视频播放时触发该事件,可以在这里获取视频时长。

B. onFinish视频播放结束时触发该事件。

C. onPrepared视频准备完成时触发该事件。

D. onUpdate播放进度变化时触发该事件,单位为s,更新时间间隔为250ms。

答案:A

24.关于容器组件Row和Column,下面说法错误的是:

A. Column容器的主轴是垂直方向,交叉轴是水平方向;Row容器的主轴是水平方向,交叉轴是垂直方向。

B. 主轴和交叉轴始终是相互垂直的,Row和Column主轴的方向不一样。

C. Column的子组件在主轴方向上的对齐使用justifyContent属性来设置,其参数类型是FlexAlign。

D. Row的子组件在交叉轴方向上的对齐方式使用alignItems属性来设置,其参数类型为HorizontalAlign。

答案:D

25.例如现在要实现一个广告弹窗,包含图片和文本等信息,使用下面那种弹窗可以实现

A. AlertDialog

B. @CustomDialog

C. TextPickerDialog

D. TimePickerDialog

答案:B

26.关于@State状态数据特征,下列描述错误的是:

A. @State装饰的变量是组件内部的状态数据,当这些状态数据被修改时,将会调用所在组件的build方法进行UI刷新。

B. 标记为@State的属性是私有变量,只能在组件内访问。

C. @State变量可以不用给定初始值。

D. 子组件@Link装饰的变量可以和父组件的@State变量建立双向数据绑定。

答案:C

27.页面路由需要导入以下哪个模块?

A. import prompt from '@ohos.prompt'

B. import router from '@ohos.router'

C. import Notification from '@ohos.notification'

D. import window from '@ohos.window'

答案:B

28.下面哪一个事件方法可以获取到List滑动的偏移量

A. onScroll

B. onScrollIndex

C. onReachStart

D. onReachEnd

答案:A

29.首选项key的最大长度限制大小为()字节?

A. 60

B. 70

C. 80

D. 90

答案:C

30.关于UIAbility的启动模式,下列说法错误的是:

A. UIAbility支持单实例、标准模式和指定实例3种启动模式,在module.json中通过launchType配置。

B. singleton为单实例模式,系统中只存在唯一一个实例,startAbility时,如果已存在,则复用系统中的唯一一个实例。

C. standard为标准模式,每次startAbility都会启动一个新的实例,系统默认为standard模式。

D. specified为指定实例模式,运行时由Ability内部业务决定是否创建多实例。

答案:C

31.关于Web组件,下面描述错误的是:

A. WebController控制器可以控制Web组件各种行为,比如forward、backward、runJavaScript等。

B. Web组件支持fileAccess、javaScriptAccess等多种属性的设置,例如 .javaScriptAccess(true)表示允许执行JavaScript脚本。

C. Web组件支持onConfirm、onConsole等多种事件,例如网页调用confirm()告警时触发onConfirm回调。

D. 使用Web组件访问在线和离线网页都需要添加ohos.permission.INTERNET权限。

答案:D

32.发起网络数据请求需要导入以下哪个模块?

A. import http from '@ohos.net.http'

B. import http from '@ohos.net.https'

C. import request from '@ohos.request'

D. import request from '@ohos.net.request'

答案:A

多选题

33.下面哪些组件层次结构是正确的。

A.Text>Span

B.Button>Column>Image

C.Button>Image>Text

D.Image>Text>Span

E.Column>Row>Button

答案:ABE

34.下面哪些容器组件是可以滚动的

A. Scroll

B. List

C. Row

D. Grid

E. Column

答案:ABD

35.下面哪些是Ability的生命周期回调函数?

A. onCreate

B. onDestroy

C. onPageShow

D. onPageHide

E. onForeground

F. onBackground

答案:ABEF

36.以下关于ArkTS声明式开发范式的基本组成说明正确的是

A. 装饰器:用来装饰类、结构体、方法以及变量,赋予其特殊的含义,例如@Entry表示这是个入口组件。

B. 自定义组件:可复用的 UI 单元,可组合其它组件。

C. UI描述:声明式的方法来描述UI的结构,例如build()方法中的代码块。

D. 内置组件:ArkTS中默认内置的基本组件和布局组件,开发者可以直接调用,如Column、Text、Divider、Button等。

E. 属性方法:用于组件属性的配置,统一通过属性方法进行设置,如fontSize()、width()、height()、color() 等。

F. 事件方法:用于添加组件对事件的响应逻辑,统一通过事件方法进行设置,如跟随在Button后面的onClick()。

答案:ABCDEF

37.关于ForEach(arr, itemGenerator, index)组件的描述正确的是:

A. ForEach中可以循环遍历逻辑代码,例如console.info('hello')

B. 第一个参数必须是数组,提供循环渲染的数据源。

C. 第二个参数生成子组件的lambda函数,为数据源中的每个数组项生成子组件。

D. 第三个参数为匿名函数,用于给定数组项生成唯一且稳定的键值。

答案:BCD

38.针对包含文本元素的组件,例如Text、Button、TextInput等,可以使用下列哪些属性:

A. fontColor

B. fontSize

C. fontStyle

D. fontWeight

E. fontFamily

答案:ABCDE

39.关于Tabs组件和TabContent组件,下列描述正确的是

A. TabContent组件不支持设置通用宽度属性,其宽度等于Tabs组件的barWidth属性。

B. TabContent组件不支持设置通用高度属性,其高度由父组件Tabs高度与TabBar组件高度决定。

C. TabsController用于控制Tabs组件进行页签切换,不支持一个TabsController控制多个Tabs组件。

D. TabContent组件的tabBar属性支持使用@Builder构造器生成的组件。

答案:ABCD

40.entry下的module.json5中包含以下哪些信息:

A. 应用包名和版本号信息

B. Ability的配置信息

C. 设备类型信息

D. 应用权限申请列表

答案:BCD

HarmonyOS应用开发者高级认证

HCIA-HarmonyOS应用开发能力工程师

1.HCIA-HarmonyOS介绍

判断题

1. 部件是指在部署视图中具有相对独立性,能完成一定功能的可独立交付,并且能独立部署的软件实体。(×)

2. 卡片常用于嵌入到其他应用(当前只支持系统应用)中作为其界面的一部分显示,并支持拉起页面,发送消息等基础的交互功能。(√)

3. 分布式软总线是手机、平板、智能穿戴、智慧屏、车机等分布式设备的通信基座,不仅为设备之间的互联互通提供了统一的分布式通信能力,还为设备之间的无感发现和零等待传输创造了条件。(√)

4. 原子化服务是鸿蒙系统提供的一种全新的应用形态,无需显式安装,由程序框架后台静默安装后即可使用,可为用户提供便捷服务。(√)

5. 根据设备的内存差异,OpenHarmony适配的系统类型分为三类:轻量系统、小型系统、标准系统。(√)

单选题

6. OpenHarmonyOS适配的系统类型中支持的设备最小内存为1 MiB的是哪一个系统?

A. 标准系统

B. 轻量系统

C. 小型系统

D. 大型系统

答案:C

多选题

7. HarmonyOS可以通过架构分层间的接口定义,对操作系统进行大颗粒系统解构。以下哪些选项是内核层向上提供的标准接口?

A. DDK

B. POSIX

C. HDI

D. CMSIS

答案:BCD

内核层向上提供 KAL(Kernel Abstract Layer,支持 POSIX 和 CMSIS 两种标准接口)和 HDI 接口,内核层每种内核形态对应于一个内核组件

8. 在万物智联时代重要机遇期,鸿蒙系统结合移动生态发展的趋势,提出了哪三大技术理念?

A. 统一生态 原生智能

B. 一次开发 多端部署

C. 可分可合 自由流转

D. 硬件互助 资源共享

答案:ABC

harmonyOS三大技术特性

1.硬件互助,资源共享

2.一次开发,多端部署

3.统一OS,弹性部署

9. HarmonyOS从用户和开发者视角出发,开发出了一款面向万物互联时代的操作系统。以下哪两个选项是HarmonyOS基于这两个视角提出的设计理念?

A. 开发者最大效率原则

B. 消费者安全最高原则

C. 开发者最小代价原则

D. 消费者体验最佳原则

答案:CD

2.HarmonyOS-应用开发入门

判断题

1. 在Windows系统下载安装DevEco Studio工具时,安装路径可以包含中文名。(×)

2. 在使用物理真机运行应用前需要对应用进行签名,开发者可以使用IDE工具提供的自动化签名方案,在打开Project Structure界面后,点击Signing Configs,勾选Automatically generate signature,等待自动签名完成即可。(√)

3. 某开发者在使用远程真机运行应用时,不需要对应用进行签名;但使用本地真机运行应用时,必须需要对应用进行签名。(×)

单选题

4. 某开发者在开启HarmonyOS应用开发入门章节的教学时,使用低代码开发作为引入实验。打开IDE工具后,他可以点击哪一个文件进行可视化开发设计?

A. EntryAbility.ts

B. index.ets

C. index.visual

D. Ability.test.ets

答案:C

5. 某开发者在下载DevEco Studio时出现了问题,他可以通过欢迎界面Help中的哪一个功能来诊断开发环境是否完备?

A. Plugin Development

B. Tip of the Day

C. Diagnose Development Environment

D. About

答案:C

多选题

6. 开发者可以利用工具中的预览器进行代码调试,以下哪几项选项是对预览器功能的正确描述?

A. 预览器提供HarmonyOS应用/服务的UI预览界面与源代码文件间的双向预览功能,支持ets文件、hml文件预览器界面进行双向预览。

B. 支持动态预览,在Previewer中预览时,可以操作应用简单的交互动作。

C. 预览器提供了Profile Manager功能,支持开发者自定义预览设备Profile。

D. 选定EntryAbility.ts文件,单击View>Tool Windows>Previewer,预览器打开。

答案:ABC

7. 分布式功能是HarmonyOS的亮点之一,DevEco Studio为此提供了多种方式,以便于开发者可以同时将代码在不同设备上进行预览。以下那几项是关于多端设备预览器的正确说法?

A. 多设备预览时,不支持双向预览功能。

B. 两个设备支持的编码语言不同,也可以使用多端设备预览功能。

C. 多端设备预览支持页面内动画的预览。

D. 打开Profile Manager中的Multi-profile preview开关,即可同时查看多设备上的应用/服务运行效果。

答案:AD

8. 以下哪几项属于Previewer预览器支持的功能?

A. 查看ArkTS组件预览效果

B. 播放视频

C. 动态预览

D. 播放语音

答案:AC

9. DevEco Studio提供模拟器进行应用运行调试,开发者可以通过菜单栏中的Tools栏下,找到Device Manager来打开模拟器,以下哪些选项是DevEco Studio支持提供的模拟器类型?

A. 超级终端远程模拟器

B. 本地模拟器

C. 远程真机

D. 远程模拟器

答案:ABD

10. 下列哪几项是DevEco Studio提供的调试与开发工具?

A. 预览器

B. 本地真机

C. 本地模拟器

D. 远程模拟器

答案:ABCD

3.HarmonyOS-Stage模型

判断题

1. 在Stage模型中,Ability的启动模式在缺省情况下是singleton。(√)

单选题

2. 在Stage模型下使用ArkTS语言进行应用开发时,往往需要创建多个页面。开发者可以在以下哪一个文件中查看页面的路由信息?

A. build-profile.json

B. string.json

C. main_pages.json

D. hvigorfile.ts

答案:C

3. 开发stage模型下的应用程序时,需要在配置文件中对应用的包结构进行声明。以下哪一项关于配置文件的描述是错误的?

A. bundleName该标签用于标识应用的包名,用于标识应用的唯一性。该标签不可缺省。

B. 配置文件由app和module这两个部分组成,缺一不可。

C. 同一个应用的不同HAP包的app配置必须保持一致。

D. 在开发stage模型下的应用程序时,需要在module.json5和config.json配置文件中对应用的包结构进行声明。

答案:D

多选题

4. 在Stage模型下,AbilityContext具备以下哪几项能力?

A. Ability的启动

B. 拉起弹窗请求用户授权

C. Ability的停止

D. 获取caller通信接口

答案:ABCD

5. 在Stage模型中,Ability的生命周期回调函数有哪些?

A. onCreate

B. onWindowStageDestroy

C. onDestroy

D. onBackground

答案:ABCD

4.HCIA-ArkTS语法

判断题

1. 在使用ArkTS语言开发界面UI代码过程中,如果添加或删除了UI组件,则会实时(亚秒级)刷新预览结果,达到极速预览的效果。(×)

2. 某开发者开发了一款社交软件,在登录界面,需要用户进行隐私勾选校验,可以用过ArkTS的警告弹窗实现该功能。(√)

3. ArkTS支持通过$$双向绑定变量,通常应用于状态值频繁改变的变量。(√)

单选题

4. 某开发者使用ArkTS语言开发时,自定义了MyInput组件,并导出该组件,便于页面中相同组件的重复使用,下列选项中,导出正确的是哪一项?

A. import MyInput

B. export default { MyInput: { } }

C. export default MyInput

D. import default MyInput

答案:C

5. 在Stage模型下使用ArkTS语言进行应用开发时,往往需要创建多个页面。开发者可以在以下哪一个文件中查看页面的路由信息?

A. string.json

B. hvigorfile.ts

C. build-profile.json

D. main_pages.json

答案:D

多选题

6. 某开发者使用ArkTS语言实现了文本内容从“Hello World”变为“Hello ArkTS”,相关代码如下,下列选项中描述正确的是哪几项?

@Entry

@Component

struct Hello {

@State myText: string = 'World'

build() {

Column() {

Text("Hello")

.fontSize(50)

Text(this.myText)

.fontSize(50)

Divider()

Button() {

Text("Click me")

.fontSize(30)

}

.onClick(() => {

this.myText = "ArkTS"

})

.width('200%')

.height('10%')

}

}

}

A. @Entry和@State均属于装饰器

B. @bulid以下的代码都属于UI描述

C. onClick是事件方法

D. fontSize()、width()、height()是属性方法

答案:ABCD

5.HarmonyOS-声明式开发范式组件

单选题

1. 某开发者想设计一个胶囊型按钮,并且按钮按下时有按压态显示效果,下例选项中代码正确的是哪一项?

A. Button('按钮', { type: ButtonType.Normal, stateEffect: true })

B. Button('按钮', { type: ButtonType.Capsule, stateEffect: true })

C. Button('按钮', { type: ButtonType.Normal, stateEffect: false })

D. Button('按钮', { type: ButtonType.Circle, stateEffect: true })

答案:B

2. 某小学需要在LED大屏上插入滚动播放效果的文字,进行学校活动通知,以下哪一项组件可以实现该功能?

A. Marquee

B. Image

C. Slider

D. Text

答案:A

3. 某开发者想做一个问卷调查页面,其中涉及到多选题的勾选,该开发者可以使用以下哪一项组件实现其功能?

A. Divider

B. Button

C. Blank

D. Checkbox

答案:D

4. 以下哪一个选项可以修改所有的Text组件的颜色为红色?

A. .text{ color: red;}

B. #text{ color: red;}

C. text{ color: red;}

D. text .all{ color: red;}

答案:C

5. 某开发者需要将数据展示为环形图表,可以使用以下哪一项组件实现该功能?

A. DataPanel

B. DatePicker

C. Gauge

D. Progress

答案:C

6.HCIA-类Web开发范式基础

单选题

1. 某开发者创建了一个服务卡片,使用JS语言进行开发,该应用容器组件设为水平方向排列的弹性盒子,盒子内有三个div组件,已知这三个子组件的height均为100px,我们使用class样式选择器对他们设定不同的样式,代码如下,下列选项中哪一个是对运行结果的正确描述?

.box1{

background-color: red;

flex: 1;

height: 100px;

}

.box2{

background-color: blue;

flex: 0 0 200px;

height: 100px;

}

.box3{

background-color: green;

flex: 3;

height: 100px;

}

A. 第一个子元素占据剩余父元素宽度的三分之一;第二个子元素宽度固定为200px; 第三个子元素占据剩余父元素宽度的三分之二。

B. 第一个红盒子占据整个父元素宽度的三分之一;第二个蓝盒子宽度固定为200px;第三个绿盒子占据整个父元素宽度的三分之三。

C. 第一个红盒子占据整个父元素宽度的四分之一;第二个蓝盒子宽度固定为200px;第三个绿盒子占据整个父元素宽度的四分之三。

D. 第一个红盒子占据剩余父元素宽度的四分之一;第二个蓝盒子宽度固定为200px;第三个绿盒子占据剩余父元素宽度的四分之三。

答案:D

2. 某开发者使用ArkTS UI下的自定义弹窗设计了手机电量低于20%的提醒弹窗,代码如下,以下哪一项代码填入横线处可以正常显示自定义弹窗?

// 定义自定义弹窗组件 CustomDialogExample

@CustomDialog

struct CustomDialogExample {

......

// 主页面

@Entry

@Component

struct CustomDialogUser {

//导入对象dialogController

dialogController: CustomDialogController = new CustomDialogController({

......

build() {

Column() {

Button(this.inputValue)

.onClick(() => {

______ //点击按钮,弹出弹窗

})

}

}

}

A. this.dialogController.open()

B. this.@CustomDialog.open()

C. this.CustomDialogController .open()

D. CustomDialogExample.open()

答案:A

3. 页面中的div组件,其HML文件中的代码如下: 

HarmonyOS

其设置的CSS样式如下: 

.box{

color: red;

}

最后文字HarmonyOS呈现什么颜色?

A. 黑色

B. 绿色

C. 白色

D. 红色

答案:B

4. 以下哪一个是虚拟像素单位?

A. vp

B. px

C. em

D. fp

答案:A

7.HCIA-类Web开发范式组件

判断题

1. Text是显示文本的组件基础之一,它可以包含子组件Span,当包含Span时不生效,只显示Span的内容。(√)

2. 当Button组件类型为Capsule胶囊型按钮时,borderRadius设置不生效,按钮圆角始终为高度的一半。(√)

3. 自定义组件可以基于struct实现,不能有继承关系,对于struct的实例化,可以省略new。(√)

4. Swiper是可滚动的容器组件,当子组件的布局尺寸超过父组件的尺寸时,内容可以滚动。(×)

5. @Prop可以用于父子组件的双向数据绑定,父组件的内部状态数据源,任何一方所作的修改都会反应给另一方。(×)

HCIA-HarmonyOS应用开发工程师 V2.0 模拟考试

判断题

1. 在Stage模型中,Ability的启动模式在缺省情况下是singleton。(√)

2. 某开发者在使用运程真机运行应用时,不需要对应用进行签名;但使用本地真机运行应用时,必须需要对应用进行签名。(×)

3. 自定义组件可以基于struct实现,不能有继承关系,对于struct的实例化,可以省略new。(√)

4. 卡片常用于嵌入到其他应用(当前只支持系统应用)中作为其界面的一部分显示,并支持拉起页面,发送消息等基础的交互功能。(√)

5. 使用图片资源时,应用可以成功加载common路径下的本地图片,但无法加载网络图片。检查是否申请相关权限ohos.permission.ACCESS_NOTIFICATION_POLICY,进行网络连接。(×)

6. 在使用物理真机运行应用前需要对应用进行签名,开发者可以使用IDE工具提供的自动化签名方案,在打开Project Structure界面后,点击Signing Configs,勾选Automatically generate signature,等待自动签名完成即可。(√)

7. 在Windows系统下载安装DevEco Studio工具时,安装路径可以包含中文名。(×)

8. 页面跳转可以分为页面跳转和页面间跳转,页面内跳转是指所跳转的页面在同一个Ability内部,它们之间的跳转可以使用Router或者Navigation的方式;页面间跳转是指所跳转的页面属与不同的Ability,这种跳转需要借助FeatureAbility实现。(√)

9. 某开发者开发了一款社交软件,在登录界面,需要用户进行隐私勾选校验,可以用过ArkTS的警告弹窗实现该功能。(√)

10. 分布式软总线是手机、平板、智能穿戴、智慧屏、车机等分布式设备的通信基座,不仅为设备之间的互联互通提供了统一的分布式通信能力,还为设备之间的无感发现和零等待传输创造了条件。(√)

11. 低代码开发提供UI可视化开发能力,支持自由拖拽组件和可视化数据绑定,可快速预览效果,所见即所得。通过拖拽式编排、可视化配置的方式,帮助开发者减少重复性的代码编写,快速地构建多端应用程序。(√)

12. 创建的Empty Ability 模板工程,会默认创建一个EntryAbility,该Ability的Page页面就是Index.ets。(√)

13. @State装饰的变量是组件内部的状态数据,当这些状态数据被修改时,将会调用所在组件的build方法进行UI刷新。(√)

14. Flex组件在渲染时存在二次布局过程,因此在对性能有严格要求的场景下建议使用Column、Row代替。(√)

15. @Prop可以用于父子组件的双向数据绑定,父组件的内部状态数据源,任何一方所作的修改都会反应给另一方。(×)

16. 原子化服务是鸿蒙系统提供的一种全新的应用形态,无需显式安装,由程序框架后台静默安装后即可使用,可为用户提供便捷服务。(√)

17. 在使用ArkTS语言开发界面UI代码过程中,如果添加或删除了UI组件,则会实时(亚秒级)刷新预览结果,达到极速预览的效果。(×)

18. Text是显示文本的组件基础之一,它可以包含子组件Span,当包含Span时不生效,只显示Span的内容。(√)

19. ArkTS支持通过$$双向绑定变量,通常应用于状态值频繁改变的变量。(√)

20. 一个应用可以有多个Ability,除了工程构建完毕后自动生成的EntryAbility会自动配置Page页面,其它手动创建的Ability都需要开发者为其设置相关的Page页面。(√)

21. Refresh容器组件可以进行页面下拉操作并显示刷新动效。(√)

22. Swiper是可滚动的容器组件,当子组件的布局尺寸超过父组件的尺寸时,内容可以滚动(×)

23. 部件是指在部署视图中具有相对独立性,能完成一定功能的可独立交付,并且能独立部署的软件实体。(×)

24. 当Button组件类型为Capsule胶囊型按钮时,borderRadius设置不生效,按钮圆角始终为高度的一半。(√)

25. 用@Entry装饰的自定义组件用作页面的默认入口组件,加载页面时,将首先创建并呈现@Entry装饰的自定义组件,在单个源文件中,有且仅有一个@Entry。(√)

26. 根据设备的内存差异,OpenHarmony适配的系统类型分为三类:轻量系统、小型系统、标准系统。(√)

单选题

27. 在低代码开发模式下,开发者想在Button组件上绑定一个名为“onChange”的点击事件,该开发者可以在哪个属性栏中进行方法关联绑定?

A. Flex

B. Event

C. General

D. Feature

答案:B

28. 某开发者想测试一下@Preview作用的组件,编写了如下代码,以下哪一项是在组件模式预览的内容?

@Entry

@Component

struct index {

@State message: string = 'Hello World'

build() {

Row() {

Column() {

test1()

test2()

Text(this.message)

.fontSize(50)

.fontWeight(FontWeight.Bold)

}

.width('100%')

}

.height('100%')

}

}

@Preview

@Component

struct test1{

build(){

Text("你好HarmonyOS")

.fontColor(Color.Blue)

.fontSize(30)

}

}

@Component

struct test2{

build(){

Text("开始学习吧")

.fontColor(Color.Red)

.fontSize(30)

}

}

A. Hello World

B. 你好HarmonyOS

C. 你好HarmonyOS开始学习吧

D. 开始学习吧

答案:B

29. 对于justify-content样式,下列哪一项描述是错误的?

A. justify-content:space-between两端对齐,子元素之间间距都相等。

B. justify-content样式的默认值是:flex-start。

C. justify-content:flex-end:子元素左对齐。

D. justify-content样式可以设置子元素在主轴方向上的对齐方式。

答案:C

30. 以下Ability生命周期回调中,哪一项在Ability启动时被调用?

A. onWindowStageCreate

B. onDestroy

C. onCreate

D. onWindowStageDestroy

答案:A

31. 某开发者自定义了test1组件,代码如下,如果在其他组件内进行调用test1,下列选项中正确的是哪一项?

@Component

struct test1{

build(){

Text("你好HarmonyOS")

.fontColor(Color.Blue)

.fontSize(30)

}

}

A. .test1()

B. test1

C. test1()

D. @Component test1()

答案:C

32. 以下哪一个文件可以用于查看HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息?

A. module.json

B. hvigorfile.ts

C. build-profile.json

D. Ability.test.ets

答案:A

33. 开发者在开发应用时,会为组件配置属性,如fontSize()、width()、height()、color()等,在DevEco Studio工具中通过以下哪种方式在组件后面配置UI的属性?

A. #

B. *

C. &

D. .

答案:D

34. 某开发者使用ArkTS UI下的自定义弹窗设计了手机电量低于20%的提醒弹窗,代码如下, 以下哪一项代码填入横线处可以正常显示自定义弹窗?

// 定义自定义弹窗组件 CustomDialogExample

@CustomDialog

struct CustomDialogExample {

......

// 主页面

@Entry

@Component

struct CustomDialogUser {

//导入对象dialogController

dialogController: CustomDialogController = new CustomDialogController({

......

build() {

Column() {

Button(this.inputValue)

.onClick(() => {

______ //点击按钮,弹出弹窗

})

}

}

}

A. CustomDialogExample.open()

B. this.CustomDialogController .open()

C. this.dialogController.open()

D. this.@CustomDialog.open()

答案:C

35. 某开发者使用低代码模式进行开发,他可以在以下哪一个属性栏中设置组件的特有样式?

A. Flex

B. Feature

C. Event

D. General

答案:B

36. 某开发者使用低代码模式进行开发,想往Text组件上绑定数据,以下哪一项可以在关联的ets文件中正确定义变量?

A. title:string = ‘Hello world'

B. @struct string: title = ‘Hello world'

C. @State title:string = ‘Hello world'

D. @State string: title = ‘Hello world'

答案:C

37. DevEco Studio工程目录结构提供多种视图,以下哪一种视图是工程创建后默认展示的目录结构视图?

A. Project视图

B. ArkUI视图

C. Packages视图

D. HarmonyOS视图

答案:A

38. 某小学需要在LED大屏上插入滚动播放效果的文字,进行学校活动通知,以下哪一项组件可以实现该功能?

A. Text

B. Image

C. Slider

D. Marquee

答案:D

39. 以下哪一个选项可以修改所有的Text组件的颜色为红色?

A. color: red;

B. }

C. .text{color: red;}

D. }

E. text .all{

F. text{color: red;}

G. #text{

H. color: red;

答案:F

40. 某开发者需要将数据展示为环形图表,可以使用以下哪一项组件实现该功能?

A. Progress

B. DatePicker

C. DataPanel

D. Gauge

答案:D

多选题

41. 下列哪几项是DevEco Studio提供的调试与开发工具?

A. 本地真机

B. 预览器

C. 本地模拟器

D. 远程模拟器

答案:ABCD

42. 在Stage模型中,Ability的生命周期回调函数有哪些?

A. onWindowStageDestroy

B. onCreate

C. onBackground

D. onDestroy

答案:ABCD

43. 在Stage模型下,AbilityContext具备以下哪几项能力?

A. Ability的启动

B. 获取caller通信接口

C. 拉起弹窗请求用户授权

D. Ability的停止

答案:ABCD

44. 一个HAP在工程目录中对应一个Module,由代码、资源、第三方库及应用配置文件组成,它可以分为哪两种类型?

A. PA

B. FA

C. Entry

D. Feature

答案:CD

45. 某开发者使用ArkTS语言实现了文本内容从“Hello World”变为“Hello ArkTS”,相关代码如下,下列选项中描述正确的是哪几项?

@Entry

@Component

struct Hello {

@State myText: string = 'World'

build() {

Column() {

Text("Hello")

.fontSize(50)

Text(this.myText)

.fontSize(50)

Divider()

Button() {

Text("Click me")

.fontSize(30)

}

.onClick(() => {

this.myText = "ArkTS"

})

.width('200%')

.height('10%')

}

}

}

A. fontSize()、width()、height()是属性方法

B. @bulid以下的代码都属于UI描述

C. onClick是事件方法

D. @Entry和@State均属于装饰器

答案:ABCD

46. 下列组件中,哪几项属于容器组件?

A. List

B. Row

C. Column

D. Flex

答案:ABCD

47. 某开发者设计了一款社交软件,登录界面如下,该登录界面涉及哪些组件?

A. Checkbox

B. Text

C. Button

D. TextInput

答案:ABCD

48. 以下哪几项属于滚动类组件?

A. Scroll

B. Grid

C. Swiper

D. List

答案:ABCD

49. HarmonyOS可以通过架构分层间的接口定义,对操作系统进行大颗粒系统解构。以下哪些选项是内核层向上提供的标准接口?

A. POSIX

B. HDI

C. CMSIS

D. DDK

答案:ABC

50. 某开发者开发了如下代码,请阅读以下代码,关于该段代码描述正确的是哪几项?

@Entry

@Component

struct Second {

@State sizeNum :number = 45

@State count :number = 60

@State offsetNum :number = 50

build() {

Row() {

Column() {

Text('hello')

.fontSize(this.sizeNum)

Image($r("app.media.icon1"))

.width(this.count % 2 === 0 ? 100 : 200)

.height(this.offsetNum + 100)

}

.width('100%')

}

.height('100%')

}

}

A.页面中文字显示在图片上方,并且文字大小为60vp

B. 图片资源来源于media文件夹下名叫"icon1"的图片

C. 图片的宽度为100vp

D. 图片的高度为145vp

答案:BC

51. 开发者可以利用工具中的预览器进行代码调试,以下哪几项选项是对预览器功能的正确描述?

A. 支持动态预览,在Previewer中预览时,可以操作应用简单的交互动作。

B. 预览器提供了Profile Manager功能,支持开发者自定义预览设备Profile。

C. 选定EntryAbility.ts文件,单击View>Tool Windows>Previewer,预览器打开。

D. 预览器提供HarmonyOS应用/服务的UI预览界面与源代码文件间的双向预览功能,支持ets文件、hml文件预览器界面进行双向预览。

答案:ABD

52. 以下哪些能力是AbilityContext所具备的?

A. Ability的停止

B. Ability的启动

C. 拉起弹窗请求用户授权

D. 获取caller通信接口

答案:ABCD

53. 在万物智联时代重要机遇期,鸿蒙系统结合移动生态发展的趋势,提出了哪三大技术理念?

A. 统一生态 原生智能

B. 一次开发 多端部署

C. 硬件互助 资源共享

D. 可分可合 自由流转

答案:ABC

这个问题在之前的测试中答ABD判定回答正确

技术理念:一次开发 多端部署;可分可合 自由流转;统一生态 原生智能;

技术特性:一次开发 多端部署;硬件互助 资源共享;统一OS 弹性部署;

54. HarmonyOS应用支持经典的弹性布局,下列哪几项是关于该布局的错误描述?

A. 一个元素的display属性值设置为flex,那么这个元素中的子元素,就会遵循弹性布局的规则。

B. 如果在父容器宽度足够时,也可以通过flex-wrap:wrap;设置来换行。

C. 主轴永远是水平方向。

D. 弹性盒子中默认存在两根轴,一个是水平方向的主轴,一个是垂直方向的侧轴。

答案:BC

55. 分布式功能是HarmonyOS的亮点之一,DevEco Studio为此提供了多种方式,以便于开发者可以同时将代码在不同设备上进行预览。以下那几项是关于多端设备预览器的正确说法?

A. 多端设备预览支持页面内动画的预览。

B. 打开Profile Manager中的Multi-profile preview开关,即可同时查看多设备上的应用/服务运行效果。

C. 两个设备支持的编码语言不同,也可以使用多端设备预览功能。

D. 多设备预览时,不支持双向预览功能。

答案:BD

56. 以下哪几项属于@Component的特点?

A. 数据驱动更新

B. 生命周期

C. 可重用

D. 可组合

答案:ABCD

57. DevEco Studio提供模拟器供开发者运行和调试HarmonyOS应用/服务,以下哪几项是对模拟器功能错误的描述?

A. Remote Emulator每次使用时长为2小时,到期前可申请延长使用时间。

B. Remote Emulator需要耗费一定的计算机磁盘资源。

C. 打开模拟器前的统一操作,进行华为开发者账号登授权。

D. Local Emulator在运行和调试应用/服务时,由于没有网络数据的交换,因此可以保持很好的流畅性和稳定性。

答案:BC

58. HarmonyOS从用户和开发者视角出发,开发出了一款面向万物互联时代的操作系统。以下哪两个选项是HarmonyOS基于这两个视角提出的设计理念?

A. 开发者最小代价原则

B. 消费者安全最高原则

C. 消费者体验最佳原则

D. 开发者最大效率原则

答案:AC

59. DevEco Studio提供模拟器进行应用运行调试,开发者可以通过菜单栏中的Tools栏下,找到Device Manager来打开模拟器,以下哪些选项是DevEco Studio支持提供的模拟器类型?

A. 远程模拟器

B. 超级终端远程模拟器

C. 本地模拟器

D. 远程真机

答案:ABC

60. 以下哪几项属于Previewer预览器支持的功能?

A. 动态预览

B. 播放视频

C. 查看ArkTS组件预览效果

D. 播放语音

答案:AC

这个问题之前这么答是正确的,但是这里提示回答错误

61. 请阅读以下代码,描述正确的是哪几项?

// xxx.ets

@Entry

@Component

struct CounterExample {

@State value: number = 0

build() {

Column() {

Counter() {

Text(this.value.toString())

}.margin(100)

.onInc(() => {

this.value++

})

.onDec(() => {

this.value--

})

}.width("100%")

}

}

A. Counter是一个容器组件

B. onDec用于监听数值减少事件

C. onInc用于监听数值增加事件

D. 可以实现增加或者减少的计数操作

答案:ABCD

62. @State装饰的变量是组件内部的状态数据,当这些状态数据被修改时,将会调用所在组件的build方法进行UI刷新。以下哪几项属于@State的特征?

A. 内部私有

B. 支持多种数据类型

C. 不需要本地初始化

D. 支持多实例

答案:ABD

63. 某开发者准备开发一款简易计算器,可以通过以下哪几项组件实现该功能?

A. Text

B. GridItem

C. Grid

D. Gauge

答案:ABC

64. 某开发者编写了如下代码,下列选项中哪几项属于装饰器?

A. @State

B. Struct

C. @Entry

D. @Component

答案:ACD

65. @Prop装饰器可以在修改父组件关联数据时,更新当前组件的UI,以下哪几项属于@Prop的特征?

A. 可以进行单向数据绑定

B. 可以与父组件@State变量建立双向数据绑定

C. 仅支持组件内访问

D. 支持多个实例

答案:ACD

66. 请阅读以下代码,下列选项描述正确的是哪几项?

// xxx.ets

@Entry

@Component

struct BadgeExample {

@State counts: number = 1

@State message: string = 'new'

build() {

Column() {

Text('numberBadge').width('80%')

Row({ space: 10 }) {

Badge({

count: this.counts,

maxCount: 99,

position: BadgePosition.RightTop,

style: { color: 0xFFFFFF, fontSize: 16, badgeSize: 20, badgeColor: Color.Red }

}) {

Button('message')

.onClick(() => {

this.counts++

})

A. Badge组件可以附加在单个组件上用于信息标记

B. 当消息数大于99时,message上标显示圆点标记

C. 点击message按钮,数字上标会增加。

D. 当消息数大于99时,message上标显示99+

答案:ACD

补充

27. 【单选题】下列哪一项组件提供了一系列属性方法来设置页面的标题栏、工具栏以及菜单栏的各种展示样式?

A. LoadingProgress

B. Navigation

C. Badge

D. Counter

答案:B

33. 【单选题】手机调节音量时,有如下效果,下列哪一项组件可以实现该功能?

A. Toggle

B. Stepper

C. Span

D. Slider

答案:D

39. 【单选题】ArkUI框架提供了堆叠容器组件,请阅读以下代码,下列选项中运行结果正确的是哪一项?

// xxx.ets

@Entry

@Component

struct StackExample {

build() {

Stack({ alignContent: Alignment.TopStart }) {

Text('Text1')

.width(200)

.height(180)

.textAlign(TextAlign.End)

.backgroundColor("#aabbcc")

Text('Text2')

.width(130)

.height(100)

.textAlign(TextAlign.End)

.backgroundColor('#bbccaa’)

Text('Text3')

.width(60)

.height(45)

.textAlign(TextAlign.End)

.backgroundColor('#abcabc')

}

.backgroundColor(Color.Pink)

.width("100%")

.height('200')

}

}

A. [52]

B. [51]

C. [54]

D. [53]

答案:D

HCIA:一小时快速入门HarmonyOS应用开发

判断题

1. 某开发者在开发模块服务卡片应用时,需要注意该应用的免安装的HAP包不能超过10MB(√)

2. 低代码开发模式下,可视化布局界面可以与布局文件一键互相转换,从而帮助开发者减少重复性的代码编写,快速地构建多端应用程序。(×)

3. 某开发者使用部署在云端上的P40真机设备资源进行应用调试。过了一段时间之后,由于资源受限,他需要释放掉当前资源后,重新申请P40设备运行应用。此时他可以沿用之前的应用签名。(×)

单选题

1. OpenHarmonyOS适配的系统类型中支持的设备最小内存为128 MiB的是哪一个系统?

A. 轻量系统

B. 小型系统

C. 标准系统

D. 大型系统

答案:C

2. DevEco Studio中的预览器工具提供多端设备同时预览的功能,以下哪一项是关于多端设备预览器的错误描述?

A. 多端设备预览器不支持展示页面动画效果。

B. 多端设备预览最多同时支持4个设备的预览。

C. 如果选择的两个设备所支持的编码语言不同,将不能开启多端设备预览功能。

D. 多端设备预览器支持双向预览功能。

答案:D

多选题

1. HarmonyOS作为一款面向万物互联时代的、全新的分布式操作系统,它具备哪三大技术特性?

A. 一次开发 多端部署

B. 统一OS,弹性部署

C. 硬件互助 资源共享

D. 统一生态 原生智能

答案:ABC

对话专家!HCIA认证解读独家大放送

判断题

1. 某开发者在开发模块服务卡片应用时,需要注意该应用的免安装的HAP包不能超过10MB(√)

2. 低代码开发模式下,可视化布局界面可以与布局文件一键互相转换,从而帮助开发者减少重复性的代码编写,快速地构建多端应用程序。(×)

3. 某开发者使用部署在云端上的P40真机设备资源进行应用调试。过了一段时间之后,由于资源受限,他需要释放掉当前资源后,重新申请P40设备运行应用。此时他可以沿用之前的应用签名。(×)

单选题

1. 某开发者想为开发应用添加一个动态加载页面,请问可以在以下哪一项配置文件中修改应用初始化页面路径?

A. build-profile.json5

B. module.json5

C. Entryability.ts

D. hvigorfile.ts

答案:C

2. 某开发者构建了两个自定义组件btton1,btton2。以下哪一项代码填入横线处可以使自定义组件正确被调用? 

@Entry

@Component

struct Index {

@State message: string = '欢迎学习'

build() {

Row() {

Column() {

______

Text(this.message)

.fontSize(50)

.fontWeight(FontWeight.Bold)

______

}

.width('100%')

}

.height('100%')

}

}

A. Button1;Button2

B. .Button1;.Button2

C. .button1;.button2

D. button1();button2()

答案:D

3. 以下哪一项生命周期回调函数会在创建自定义组件的新实例后,在执行其build函数之前执行?

A. onBackPress()

B. onPageShow()

C. aboutToDisappear()

D. aboutToAppear()

答案:D

4. 请阅读以下代码,该段代码中存在几个内置组件?

@Entry

@Component

struct demo {

@State message: string = 'Hello World'

build() {

Column() {

Row() {

Text(this.message)

.width(100)

.height(100)

Divider()

Text('click +1')

.onClick(() => {

console.info('click +1')

})

}

Divider()

Column() {

Image('demo.jpg')

.width(20)

.height(20)

Blank()

}

}

}

}

A. 3

B. 6

C. 8

D. 9

答案:D

5. 某开发者设计了为应用添加了一个购物车功能,可以使用Counter组件实现对购物车商品数的添加以及减少。以下哪一项回调中可以设置对应变量的减少计数操作?

A. onInc()

B. onDec()

C. onAdd()

D. onChange()

答案:B

多选题

1. 跑马灯组件可以用于展示一段可往左或往右单行滚动的文字,loop属性可以被用于设置文字的滚动次数,以下哪几个选项可以设置文字无限滚动?

A. 10000000

B. 1

C. 0

D. -10000

答案:CD

2. ArkTS的装饰器提供了丰富多样的能力,以下哪几项状态变量初始化方式上必须使用本地初始化方式?

A. @Provide

B. @Link

C. @ObjectLink

D. @State

答案:AD

HCIP-HarmonyOS应用开发高级工程师V1.0模拟考试

判断题

1. i18n是一种趋同的设计方式,通过一种方案去满足不同国家的需求。(×)

2. 跨端迁移是一种实现用户应用程序流转的技术方案,指多端上FA/PA同时运行、或者交替运行实现完整的业务。(×)

3. 在HarmonyOS的分布式协同办公场景中,一份文件可以在多个终端操作,而实际的文件存储可以有且仅有一份。(√)

4. HarmonyOS Connect继承了HiLink的碰一碰、快速连接的功能体验,而在连接技术上,HarmonyOS Connect使用了HarmonyOS的分布式软总线连接能力。(√)

5. HarmonyOS应用在跨端迁移后,原设备上的应用需要自行退出。(√)

6. HarmonyOS跨端迁移和多端协同,是使用不同的FA/PA,在不同设备间运行来实现完整的业务。(×)

7. HarmonyOS应用可以直接读取日历信息,不需要单独配置权限。(×)

8. 声明式开发范式的属性动画需要在css样式文件中设置。(×)

9. 在HarmonyOS流转中,如果对端设备不支持流转任务管理服务,则不能进行跨端迁移。(×)

10. 在HarmonyOS有序公共事件中,高优先级订阅者可修改公共事件内容或处理结果,但不能终止公共事件处理。(×)

11. 在HarmonyOS中发布带权限公共事件,发布者首先要在config.json中申请所需的权限。(×)

12. 在真机上运行Release类型的HAP包需要签名,运行Debug类型的HAP包则不需要签名。(×)

13. 在类Web开发范式的自定义组件中,父组件和子组件之间的数据可以双向传递。(×)

14. 类Web开发范式中的自定义组件引入到宿主页面时,必须使用属性指定自定义组件名称(×)

15. 在HarmonyOS中,当订阅动作是在无序公共事件发布之后进行,订阅者也能收到该无序公共事件。(×)

单选题

16. 在声明式开发范式中,可以通过以下哪个参数,设置属性动画的播放次数?

A. duration

B. iterations

C. curve

D. delay

答案:B

17. 以下哪一项产品属于智能家居生态中的家庭中控交互中心?

A. 智能摄像头

B. 智能面板

C. 智能牙刷

D. 扫地机

答案:B

18. 以下哪种原子化布局能力属于自适应变化能力?

A. 拉伸

B. 拆行

C. 隐藏

D. 占比

答案:A

HarmonyOS 设计工具提供了原子化布局能力,划分为“自适应变化能力”和“自适应布局能力”两类。自适应变化能力包含了缩放能力和拉伸能力,自适应布局能力包含了隐藏、折行、均分、占比和延伸能力。

19. HarmonyOS设备A上的应用通过调用分布式任务调度的能力startAbility,向设备B的应用发起多端协同,此过程属于多端协同的哪个过程?

A. 流转进行

B. 流转结束

C. 流转完成

D. 流转准备

答案:A

跨端迁移

1.流转准备:设备A上的应用向流转任务管理服务注册一个流转回调

2.流转完成:设备A上的应用通过调用分布式任务调度的能力,如continueAbility等,向设备B的应用发起跨端迁移。流转中将流转状态上报到流转任务管理服务

多端协同

1.流转准备:设备A上的应用向流转任务管理服务注册一个流转回调

2.流转进行:设备A上的应用通过调用分布式任务调度的能力,如startAbility, connectAbility等,向设备B的应用发起多端协同。流转中将流转状态上报到流转任务管理服务。 3.流转结束:用户通过设备A的流转任务管理界面结束流转。用户点击结束任务后,流转任务管理服务回调通知应用取消流转。设备A上的应用通过调用分布式任务调度的能力,如stopAbility, disconnectAbility等,终止和设备B的多端协同。流转结束后将流转状态上报到流转任务管理服务,并向流转任务管理服务注销流转回调。

20. 在类Web开发范式自定义组件的生命周期回调方法中,以下哪一项生命周期可用于初始化显示相关数据,通常用于加载图片资源、开始执行动画等场景?

A. onAttached

B. onInit

C. onDetached

D. onLayoutReady

答案:A

21. 某HarmonyOS开发者想要使用https请求,需要导入以下哪个模块?

A. @ohos.net.http

B. @ohos.request

C. @ohos.net.webSocket

D. @ohos.net.https

答案:A

22. JS服务卡片在以下哪个选项中进行加载渲染?

A. 卡片代理服务

B. 卡片提供方

C. 卡片处理方

D. 卡片使用方

答案:D

23. 以下哪种原子化布局能力是控制元素的尺寸?

A. 均分

B. 拆行

C. 隐藏

D. 缩放

答案:D

24. 通过以下哪个接口可以一次性查询到HAP包下所有Ability的信息?

A. bundleManager.queryAbilityByWant

B. bundleManager.getBundleInfo

C. bundleManager.getAbilityInfo

D. bundleManager.getApplicationInfo

答案:B

25. 在HarmonyOS流转架构中,以下哪个模块提供远程服务启动、远程服务连接、远程迁移等能力?

A. 分布式安全

B. 流转任务管理服务

C. 分布式软总线

D. 分布式任务调度

答案:D

26. 以下哪一项是DevEco Studio开发工具的性能分析器?

A. Debugger

B. Profiler

C. HiTrace

D. Simulator

答案:B

27. 以下哪个公共事件发布后,订阅者再发起订阅还能收到之前发布的公共事件?

A. 带权限的公共事件

B. 粘性公共事件

C. 无序公共事件

D. 有序公共事件

答案:B

28. 类Web开发范式中的自定义组件使用以下哪个标签引入到宿主页面?

A. elem

B. element

C. comp

D. component

答案:B

29. 视频来电时从手机迁移到智慧屏,视频聊天体验更佳,手机视频应用退出。该场景中使用了HarmonyOS的哪一项流转方案?

A. 跨端协同

B. 跨端迁移

C. 多端迁移

D. 多端协同

答案:B

30. 在类Web开发范式的自定义组件中,父组件通过设置属性向子组件传递参数,该开发者自定义的属性名称为compProp,在父组件引用时需要将属性名称转换为下列哪一项?

A. CompProp

B. comp-prop

C. compProp

D. compprop

答案:B

31. 以下哪一个工具可以提供兼容性测试报告,用于验证HarmonyOS应用在华为真机设备上运行的兼容性问题,包括首次安装、再次安装、启动、卸载等场景?

A. HarmonyOS测试框架

B. 应用云测试

C. 应用安全测试

D. Profiler

答案:B

32. 以下哪个HarmonyOS的AI能力可以提供文档翻拍过程中的辅助增强功能?

A. 分词

B. 文档检测矫正

C. 图像超分辨率

D. 通用文字识别

答案:B

33. 以下哪一种数据库的Key前面拼接了本设备的DeviceID标识符?

A. 轻量级数据存储

B. 单版本分布式数据库

C. 关系型数据库

D. 设备协同分布式数据库

答案:D

34. 以下哪一个选项是类Web开发范式的绘图组件svg中绘制椭圆形状的子组件?

A. circle

B. rect

C. ellipse

D. line

答案:C

35. 以下哪一种动态布局属于自适应动态布局?

A. 重复布局

B. 瀑布布局

C. 相对拉伸

D. 挪移布局

答案:C

多选题

36. 在声明式开发范式中,以下哪些装饰器装饰的自定义组件成员变量必须本地初始化?

A. @Link

B. @StorageLink

C. @State

D. @Prop

答案:BC

37. 以下哪几项属于HarmonyOS Connect服务包提供的基础服务?

A. 运维服务

B. 极简交互

C. 极简连接

D. 万能卡片

答案:BCD

HarmonyOS Connect 服务包由基础服务、增强服务、HarmonyOS Connect 云等组成。

基础服务:极简连接、万能卡片、极简交互、硬件互助

增强服务:运维服务、运营服务、专属场景服务

38. HarmonyOS服务卡片提供方包含以下哪几个模块?

A. 卡片服务

B. 通信适配层

C. 卡片管理

D. 卡片提供方实例管理模块

答案:ABD

39. 声明式开发范式的转场动画包含以下哪几种类型?

A. 组件内转场

B. 应用间转场

C. 共享元素转场

D. 页面间转场

答案:ACD

40. 在声明式开发范式中,页面间转场通过在全局pageTransition方法内配置以下哪几个组件来自定义页面转场动效?

A. onEnter

B. PageTransitionExit

C. onExit

D. PageTransitionEntry

答案:BD

41. 当HarmonyOS设备不支持流转任务管理服务时,开发者需要自行实现以下哪些功能?

A. 分布式安全

B. 流转状态管理

C. 设备选择

D. 分布式软总线

答案:BC

42. HarmonyOS的NotificationSlot包含以下哪几种类型?

A. 其他类型

B. 社交通信

C. 内容咨询

D. 服务提醒

答案:ABCD

43. HarmonyOS分布式数据服务通过以下哪几项,将不同应用的数据进行隔离?

A. 设备

B. 账号

C. 应用

D. 数据库

答案:BCD

44. HarmonyOS设计工具是一款Sketch插件,包含以下哪几种功能?

A. 设计系统

B. 原子化布局

C. 标注工具

D. 控件库

答案:ABCD

45. HarmonyOS通知内容包含以下哪几种类型?

A. 图片

B. 多行文本

C. 普通文本

D. 长文本

答案:ABCD

答的ABD回答错误

46. HarmonyOS流转任务管理服务为开发者提供了以下哪几项功能?

A. 上报业务状态

B. 解注册

C. 注册

D. 显示设备列表

答案:ABCD

47. HarmonyOS分布式数据服务包含以下哪几项?

A. 分布式数据服务接口

B. 通信适配层

C. 同步组件

D. 存储服务

答案:ABCD

48. HarmonyOS提供的包管理能力包含以下哪些信息?

A. Ability信息

B. 应用程序信息

C. HAP包信息

D. 应用包信息

答案:ABCD

49. DevEco Studio性能分析器能够对以下哪几方面资源进行使用率分析?

A. 电池

B. 内存

C. CPU

D. 网络

答案:ABCD

50. HarmonyOS多窗口交互能力提供了以下哪几种交互方式?

A. 全局消息通知

B. 悬浮窗

C. 平行视界

D. 分屏

答案:BCD

补充

1. 【判断题】HarmonyOS的方舟开发框架包含基于TS扩展的类Web开发范式和基于JS扩展的声明式开发范式。(×)

10. 【判断题】HarmonyOS原子化布局包含自适应变化和自适应布局两类。(√)

15. 【判断题】HarmonyOS服务卡片使用方可以通过通信适配层和卡片提供方直接交互。(×)

39. 【多选题】类Web开发范式中的自定义组件绑定子组件事件使用的是以下哪几种语法?

A. on

B. #

C. $

D. @

答案:AD

好文阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。

发表评论

返回顶部暗黑模式