HarmonyOS开发者基础认证试题
文章目录
- 一、HarmonyOS介绍
- 二、DevEco Studio的使用
- 三、ArkTS语法介绍
- 四、应用程序框架基础
- 五、从简单的页面开始
- 六、构建更加丰富的页面
- 七、从网络获取数据
- 八、保存应用数据
一、HarmonyOS介绍
判断题:
1.“一次开发,多端部署”指的是一个工程,一次开发上架,多端按需部署。为了实现这一目的,HarmonyOS提供了多端开发环境,多端开发能力以及多端分发机制。
正确答案:正确
2.《鸿蒙生态应用开发白皮书》全面阐释了鸿蒙生态下应用开发核心理念、关键能力以及创新体验,旨在帮助开发者快速、准确、全面的了解鸿蒙开发套件给开发者提供的能力全景和未来的愿景。
正确答案:正确
3.HUAWEI DevEco Studio是面向HarmonyOS生态的集成开发环境,提供了一站式的HarmonyOS生态应用开发能力。
正确答案:正确
单选题:
4.当用户希望能够在多个设备间来回切换、完成多个任务,开发者可以使用以下哪个核心能力,以便应用不间断地给用户提供服务的能力。
A. 统一生态
B. 可分可合
C. 自由流转
D. 原生智能
正确答案:C
5.当您希望获取到最全面、最详细的功能描述、参数说明和权限信息时,应该从()寻找?
A. Sample
B. FAQ
C. API参考
D. Codelabs
正确答案:C
6.应用如需在多个设备上运行,需要适配不同的屏幕尺寸和分辨率、不同的交互方式(如触摸和键盘等)、不同的硬件能力(如内存差异和器件差异等),开发成本较高。“一次开发,多端部署”提供了哪个核心能力降低了多设备应用的开发成本?
A. 多端开发环境
B. 多端开发能力
C. 多端分发机制
D. 多端UI适配
正确答案:B
7.如果开发者在原生应用版本的基础上,想要提供多种服务给用户,开发者选择开发场景的最优选是?
A. 独立开发一个应用
B. 开发多个元服务,按需组合为一个复杂的应用
C. 独立开发一个元服务
D. 同时开发应用和多个元服务
正确答案:B
多选题:
8.下列哪些选项属于HarmonyOS三大技术理念。
A. 一次开发,多端部署
B. 可分可合,自由流转
C. 统一生态,原生智能
D. 跨端迁移,多端协同
正确答案:A、B、C
9.用户使用应用的情境发生变化时(例如从室内走到户外、从办公室到车上等),之前使用的设备可能已经不适合继续当前的任务,或者周围有更合适的设备,此时,可以选择使用新的设备来继续当前的任务。以下哪些场景适合使用跨端迁移能力?
A. 在外时手机上编辑邮件,到公司后在2in1设备上继续编辑
B. 在外时手机玩游戏,到家后希望获取更好的视觉体验,在平板上继续玩
C. 在家里智慧屏上看视频,当下需要出门时,可以手机上继续观看
D. 手机视频通话中,到家后家中有智慧屏,可以更沉浸地视频聊天
正确答案:A、B、C、D
10.下列哪些说法是正确的。
A. HUAWEI DevEco Studio 提供了设备模拟的能力,解决HarmonyOS生态应用、元服务开发过程中遇到的真机设备不足、无分布式应用调试环境等问题,为开发者提供低成本、易获取的调测验证环境
B. 为了降低性能调优技术难度,HUAWEI DevEco Studio推出了场景化调优工具 DevEco Profiler
C. HUAWEI DevEco Studio提供了一系列命令行工具,辅助开发者更高效的管理 SDK 、设备,提升调试、调优的效率
D. HUAWEI DevEco Studio是面向HarmonyOS生态的集成开发环境,提供了一站式的HarmonyOS生态应用开发能力
正确答案:A、B、C、D
二、DevEco Studio的使用
判断题
1.如果代码中涉及到一些网络、数据库、传感器等功能的开发,均可使用预览器进行预览。
正确答案:错误
2.module.json5文件中的deviceTypes字段中,配置了phone,tablet,2in1等多种设备类型,才能进行多设备预览。
正确答案:正确
3.DevEco Studio支持代码自动补全、自动导包等能力。
正确答案:正确
单选题
4.用哪一种装饰器修饰的组件可作为页面入口组件:
A. @Component
B. @Entry
C. @Preview
D. @Builder
正确答案:B
5.ArkTS Stage模型,关于其工程目录结构说法不正确的是:
A. build-profile.json5用于存放应用级配置信息,包括签名、产品配置等
B. oh-package.json5用于配置三方包声明文件的入口及包名
C. module.json5包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息
D. app.json5用于编写应用级编译构建任务脚本
正确答案:D
6.使用下面哪个hdc命令可以查看设备链接信息
A. hdc hilog
B. hdc list targets
C. hdc shell
D. hdc -v
正确答案:B
7.组件预览通过在组件前添加下面哪个注解:
A. @Component
B. @Entry
C. @Preview
D. @Builder
正确答案:C
多选题
8.关于预览器的使用,以下哪些说法是正确的:
A. 在开发界面UI代码过程中,如果添加或删除了UI组件,您只需Ctrl+S进行保存,然后预览器就会立即刷新预览结果
B. 在预览器界面,可以在预览器中操作应用/服务的界面交互动作,如单击、跳转、滑动等,与应用/服务运行在真机设备上的界面交互体验一致
C. 组件预览通过在组件前添加注解@Preview实现
D. 页面预览通过在工程的ets文件头部添加注解@Entry实现
正确答案:A、B、C、D
9.DevEco Studio代码编辑支持下面哪些能力:
A. 代码自动补齐
B. 实时检查
C. 跨语言跳转
D. 代码引用查找
E. 快速查阅API接口及组件参考文档
正确答案:A、B、C、D、E
10.DevEco Studio支持使用多种语言进行应用/服务的开发,包括ArkTS、JS和C/C++。在编写应用/服务阶段,可以通过以下哪些方法提升编码效率:
A. 提供代码的智能补齐能力,编辑器工具会分析上下文并理解项目内容,并根据输入的内容,提示可补齐的类、方法、字段和关键字的名称等
B. 在编辑器中调用ArkTS API接口或ArkTS/JS组件时,支持在编辑器中快速、精准调取出对应的参考文档
C. 代码格式化功能可以帮助您快速的调整和规范代码格式,提升代码的美观度和可读性
D. 如果输入的语法不符合编码规范,或者出现语义语法错误,编辑器会显示错误或警告
正确答案:A、B、C、D
三、ArkTS语法介绍
判断题
1.ArkTS中使用const声明常量。
正确答案:正确
2.允许在容器组件内使用if/else条件渲染语句构建不同的子组件。
正确答案:正确
3.@Entry装饰的自定义组件将作为UI页面的入口。在单个UI页面中可以使用多个@Entry装饰不同自定义组件。
正确答案:错误
单选题
4.下面属于ArkTS中正确使用变量声明的语句是?
A. int a = 10;
B. var a = 10;
C. let a: number = 10;
D. number a = 10;
正确答案:C
5.下面属于ArkTS函数声明的语句的是?
A. func printInfo(){};
B. def printInfo();
C. void printInfo(){};
D. function printInfo() {};
正确答案:D
6.下列关于ForEach循环渲染语法中参数说法错误的是?
A. arr表示数据源,为Array类型的数组,为必选参数
B. arr可以设置为空数组,此时不会创建子组件
C. itemGenerator为数组中的每个元素创建对应的组件,为必选参数
D. keyGenerator为数据源arr的每个数组项生成唯一且持久的键值,为必选参数
正确答案:D
7.下列关于if/else条件渲染说法错误的是?
A. if、else if后跟随的条件语句不可以使用状态变量
B. 允许在容器组件内使用,通过条件渲染语句构建不同的子组件
C. 当父组件和子组件之间存在一个或多个if语句时,必须遵守父组件关于子组件使用的规则
D. 支持if、else和else if语句
正确答案:A
多选题
8.下面示例中会导致编译报错的有?
A. let x: number = null;
B. let x: number | null = null;
C. let y: string = null;
D. let y: string = 100;
正确答案:A、C、D
9.下面属于ArkTS基础类型的是?
A. string
B. boolean
C. number
D. Object
正确答案:A、B、C
10.下面哪些属于属性方法?
A. fontSize()
B. onClick()
C. width()
D. height()
正确答案:A、C、D
四、应用程序框架基础
判断题
1.在基于Stage模型开发的应用项目中都存在一个app.json5配置文件、以及一个或多个module.json5配置文件。
正确答案:正确
2.一个应用只可以包含一个UIAbility组件。
正确答案:错误
3.Background状态在UIAbility实例销毁时触发。可以在onDestroy()回调中进行系统资源的释放、数据的保存等操作。
正确答案:错误
单选题
4.关于module.json5配置文件的标签描述,以下哪个是错误的?
A. pages标签标识当前Module的配置的应用环境变量
B. deviceTypes标签标识当前设备可以运行在哪类设备上
C. abilitis标签标识当前Module中UIAbility的配置信息
D. requestPermissions标签标识当前应用运行时需要向系统申请的权限集合
正确答案:A
5.在UIAbility实例销毁时触发什么状态?
A. Background
B. Foreground
C. Destroy
D. Create
正确答案:C
6.UIAbility实例创建完成时触发的回调:
A. onCreate()
B. onForeground()
C. onBackground()
D. onDestroy()
正确答案:A
7.如果需要定义某个Module可以在手机、平板和机车上运行,则修改以下哪个文件?
A. app.json5
B. module.json5
C. oh-package.json5
D. oh-package-lock.json5
正确答案:B
多选题
8.UIAbility的生命周期有哪几个状态?
A. Create
B. WindowStageCreate
C. Foreground
D. Background
E. WindowStageDestory
F. Destroy
正确答案:A、C、D、F
9.Stage模型提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”,其设计基于哪些出发点:
A. 为复杂应用而设计
B. 原生支持应用组件级的跨端迁移和多端协同
C. 支持多设备和多窗口形态
D. 平衡应用能力和系统管控成本
正确答案:A、B、C、D
10.开发态的应用程序结构包含多种文件类型,以下说法正确的有:
A. 配置文件,包括应用级配置信息app.json5、以及Module级配置信息module.json5
B. ArkTS源码文件,主要存放在Module_name > src > main > ets目录下
C. 资源文件,包括应用级资源文件、以及Module级资源文件,支持图形、多媒体、字符串、布局文件等
D. 其他配置文件,用于编译构建,包括构建配置文件、编译构建任务脚本、混淆规则文件、依赖的共享包信息等
正确答案:A、B、C、D
五、从简单的页面开始
判断题
1.Button作为容器使用时可以通过添加子组件实现包含文字、图片等元素的按钮,其类型包括胶囊按钮、圆形按钮、普通按钮。
正确答案:正确
2.对于包含文本元素的组件,如:Text、Span、Button、TextInput等,使用fontFamily设置字体时,参数类型只能是string,当使用多个字体时,用“,”进行分割,按顺序生效。
正确答案:错误
3.在Column容器中的子组件默认是按照从上到下的垂直方向布局的,其主轴的方向是垂直方向,在Row容器中的组件默认是按照从左到右的水平方向布局的,其主轴的方向是水平方向。
正确答案:正确
单选题
4.关于ForEach循环渲染的描述错误的是:
A. arr数据源,为Array类型的数组
B. itemGenerator为子组件生成函数,为数组中的每个元素创建对应的组件
C. keyGenerator为数组项唯一键值生成函数,为数据源arr的每个数组项生成唯一且持久的键值,函数返回值为开发者自定义的键值生成规则
D. ForEach基于数组类型数据来进行循环渲染,需要与容器组件配合使用,且可以返回任意子组件
正确答案:D
5.Image不支持哪种图片格式:
A. svg
B. eps
C. gif
D. bmp
正确答案:B
6.下面哪个组件层次结构是错误的:
A. List>ListItem>Column
B. Column>List>ListItem
C. Grid>Row>GridItem
D. Grid>GridItem
正确答案:C
7.需要在主轴上使第一个元素到行首的距离和最后一个元素到行尾的距离是相邻元素之间距离的一半,通过下列哪种方式设置:
A. justifyContent(FlexAlign.SpaceBetween)
B. justifyContent(FlexAlign.SpaceAround)
C. justifyContent(FlexAlign.SpaceEvenly)
D. justifyContent(FlexAlign.Center)
正确答案:B
多选题
8.关于Grid组件的相关描述正确的是:
A. 网格布局是由“行”和“列”分割的单元格所组成,具有较强的页面均分能力,子组件占比控制能力
B. Grid组件提供了rowsTemplate和columnsTemplate属性用于设置网格布局行列数量与尺寸占比
C. 设置网格容器的步骤:准备待循环的数据源、设置网格容器Grid、利用ForEach对数据进行渲染
D. 如果设置的是columnsTemplate,Grid的滚动方向为水平方向;如果设置的是rowsTemplate,Grid的滚动方向为垂直方向
E. Grid用于设置网格布局相关参数,GridItem定义子组件相关特征。Grid组件支持使用条件渲染、循环渲染、懒加载等方式生成子组件
正确答案:A、B、C、E
9.关于Swiper组件的相关描述正确的是:
A. 当loop为true时,在显示第一页或最后一页时,可以继续往前切换到前一页或者往后切换到后一页。如果loop为false,则在第一页或最后一页时,无法继续向前或者向后切换页面
B. Swiper通过设置autoPlay属性,控制是否自动轮播子组件
C. Swiper支持水平和垂直方向上进行轮播,主要通过vertical属性控制
D. Swiper支持手指滑动、点击导航点和通过控制器三种方式切换页面
正确答案:A、B、C、D
10.关于List组件的相关描述正确的是:
A. List除了提供垂直和水平布局能力、还提供了自适应交叉轴方向上排列个数的布局能力
B. 当列表项达到一定数量,内容超过屏幕大小时,可以提供滚动功能。它适用于呈现同类数据类型或数据类型集
C. List提供了divider属性用于给列表项之间添加分隔线。在设置divider属性时,可以通过strokeWidth和color属性设置分隔线的粗细和颜色
D. List组件主轴默认是垂直方向,即默认情况下不需要手动设置List方向,就可以构建一个垂直滚动列表
正确答案:A、B、C、D
六、构建更加丰富的页面
判断题
1.Tabs组件可以通过接口传入一个TabsController,该TabsController可以控制Tabs组件进行页签切换。
正确答案:正确
2.WebviewController提供了变更Web组件显示内容的接口,例如可以使用loadData来加载一个网页链接地址改变Web组件的渲染内容。
正确答案:错误
3.Navigation组件是路由导航的根视图容器,一般作为Page页面的根容器使用,可以通过该组件提供的路由能力实现首页与非首页的切换。
正确答案:正确
单选题
4.Web组件提供了加载页面的多种方式,以下不为Web组件提供的页面加载方式的是:
A. 加载网络页面
B. 加载本地页面
C. 加载HTML格式的文本数据
D. 加载XML页面
正确答案:D
5.Tabs组件如何设置导航栏为左侧边导航:
A. 设置BarPosition参数为BarPosition.End,vertical属性保持默认设置或设置为false
B. 设置BarPosition参数为BarPosition.Start,vertical属性保持默认设置或设置为false
C. 设置BarPosition参数为BarPosition.End,同时设置vertical属性为true
D. 设置BarPosition参数为BarPosition.Start,同时设置vertical属性为true
正确答案:D
6.以下关于页面跳转相关方法说法不正确的是:
A. pushPathByName方法可以将参数对应的页面栈信息进行入栈,从而完成对应页面的跳转
B. pushPathByName方法需要依次传入页面名称,路由参数以及是否开启转场动画,其中转场动画默认开启
C. replacePathByName方法会将页面栈栈顶元素退出,再将传入参数对应的页面栈信息进行入栈
D. replacePathByName方法需要传入一个NavPathInfo类型的对象,该对象包含了NavDestination页面的信息
正确答案:D
7.以下关于Navigation所关联的路由栈的路由参数获取方法说法不正确的是:
A. getParamByIndex方法为Navigation关联的路由栈所提供的方法
B. getParamByIndex返回值的类型为unknown或者undefined,在开发时经常需要再做断言或者类型转化
C. getParamByIndex方法需要传入一个number类型的参数,该参数表示页面栈内某个页面信息的索引,通过该方法可以获取到对应索引位置的页面信息
D. getParamByName方法需要传入一个string类型的页面名称,方法执行完成后会返回第一个页面名称为传入值的页面信息
正确答案:D
多选题
8.Navigation组件关联的路由栈提供了入栈方法,以下入栈方法正确的是:
A. pushPath
B. pushPathByName
C. replacePath
D. replacePathByName
正确答案:A、B、C、D
9.以下哪些是webview提供的功能:
A. 控制Web组件加载内容
B. Web组件生命周期回调
C. 控制Web内容前进后退
D. 异步执行JavaScript脚本
正确答案:A、C、D
10.以下属于Navigation布局模式的有:
A. 自适应模式
B. 单页面模式
C. 层叠模式
D. 分栏模式
正确答案:A、B、D
七、从网络获取数据
判断题
1.在http模块中,多个请求可以使用同一个httpRequest对象,httpRequest对象可以复用:
正确答案:错误
2.使用on(type: ‘headersReceive’)订阅响应头事件后,不需要监听时也不必取消订阅。
正确答案:错误
3.当HTTP请求使用完毕时,需调用destroy方法主动销毁HttpRequest对象:
正确答案:正确
单选题
4.HarmonyOS提供了一种访问控制机制即应用权限,用来保证这些数据或功能不会被不当或恶意使用。使用http发起网络请求,需要以下哪种权限?
A. ohos.permission.USE_BLUETOOTH
B. ohos.permission.INTERNET
C. ohos.permission.REQUIRE_FORM
D. ohos.permission.LOCATION
正确答案:B
5.向服务器提交表单数据,以下哪种请求方式比较合适:
A. RequestMethod.GET
B. RequestMethod.POST
C. RequestMethod.PUT
D. RequestMethod.DELETE
正确答案:B
6.关于请求返回的响应码ResponseCode,下列描述错误的是:
A. ResponseCode.OK的值为200,表示请求成功。一般用于GET与POST请求
B. ResponseCode.NOT_FOUND的值为404,表示服务器无法根据客户端的请求找到资源(网页)
C. ResponseCode.INTERNAL_ERROR的值为500,表示服务器内部错误,无法完成请求
D. ResponseCode.GONE的值为404,表示客户端请求的资源已经不存在
正确答案:D
7.下列关于请求参数中method字段的请求方式的说法不正确的是:
A. HEAD请求的响应格式与GET请求相同,只是响应主体为空,所以可以用于获取资源的元数据、检查资源是否存在。
B. DELETE请求可以请求服务器删除指定的资源。
C. GET请求可以向服务器获取资源,但GET请求不能够携带任何参数。
D. POST请求向指定资源提交数据进行处理请求
正确答案:C
多选题
8.关于http的请求可选参数字段下列说法正确的是:
A. method字段表示请求方式,默认为POST。
B. method字段为GET时,extraData字段为HTTP请求可选参数的补充,参数内容会拼接到URL中进行发送。
C. expectDataType字段指定返回数据的类型,系统一定会返回指定的类型。
D. readTimeout字段为读取超时时间,默认为60000ms。设置为0表示不会出现超时情况。
正确答案:B、D
9.以下哪些是http请求request接口中请求可选参数的字段:
A. method。
B. extraData。
C. expectDataType。
D. readTimeout。
E. url
正确答案:A、B、C、D
10.关于http模块描述正确的是:
A. http请求支持get、post、put等常用的请求方式。
B. 可以使用on(‘headersReceive’)订阅请求响应头。
C. post请求的参数可以在extraData中指定。
D. 执行createHttp成功后,返回一个httpRequest对象,里面包括request、destroy、on和off方法。
正确答案:A、B、C、D
八、保存应用数据
判断题
1.用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,它是一种关系型数据库。
正确答案:错误
2.用户首选项Key是可以重复的关键字。
正确答案:错误
3.用户首选项存储只需要注意Value大小限制。
正确答案:错误
单选题
4.应用存入数据到Preferences实例后,可以使用flush()方法实现数据持久化,用户首选项的数据持久化后是放在哪里?
A. 内存中
B. 数据库表中
C. 持久化文件
D. 云端
正确答案:C
5.下面哪个接口用于使用户首选项数据持久化?
A. get()
B. update()
C. put()
D. flush()
正确答案:D
6.下面哪个接口不是用户首选项提供的API接口?
A. get()
B. update()
C. put()
D. flush()
正确答案:B
7.使用用户首选项持久化数据的正确流程?
A. 使用getPreferencesSync()获取用户首选项实例,然后使用putSync()方法保存数据到缓存的Preferences实例中,再使用flush()持久化数据
B. 使用getPreferencesSync()获取用户首选项实例,然后使用getSync()方法保存数据到缓存的Preferences实例中,再使用flush()持久化数据
C. 使用getSync()获取用户首选项实例,然后使用getPreferencesSync()方法保存数据到缓存的Preferences实例中,再使用flush()持久化数据
D. 使用putSync()获取用户首选项实例,然后使用getPreferencesSync()方法保存数据到缓存的Preferences实例中,再使用flush()持久化数据
正确答案:A
多选题
8.用户首选项支持存储应用持久化轻量级数据,关于其约束限制,下面说法正确的有?
A. 用户首选项遵循ACID特性(Atomicity, Consistency, Isolation and Durability)
B. 用户首选项以Key-Value形式存取数据
C. 用户首选项存储数据数量建议不超过1万条
D. 用户首选项的Key为string类型
正确答案:B、C、D
9.用户首选项支持存储应用持久化轻量级数据,关于其注意事项,下面说法不正确的有?
A. 用户首选项支持应用持久化轻量级数据
B. 用户首选项Key可以重复
C. 使用flush()方法把数据保存到文件
D. 通过get()方法判断首选项中是否包含指定的key,保证指定的key不会被重复保存
正确答案:B、D
10.以下选项是键值对列表,以Key-Value形式展示,如[teacher-zhangsan, student-lisi],表示有两个键值对,第一个键值对Key为teacher,Value为zhangsan,第二个键值对Key为student,Value为lisi。哪组键值对不能用用户首选项存储?
A. [student-zhangsan, student-lisi]
B. [student1-zhangsan, student2-lisi]
C. [teacher-zhangsan, teacher-lisi]
D. [teacher1-zhangsan, teacher2-lisi]
正确答案:A、C