基础认证题库请移步:HarmonyOS应用开发者基础认证题库
注:有读者反馈,题库的代码块比较多,打开文章时会卡死。所以笔者将题库拆分,单选题20个为一组,多选题10个为一组,题库目录如下,读者可以按需跳转。如果对您的阅读产生不便,笔者在这里向大家说声抱歉,请各位读者原谅。完整的md文档,等读者把题库整理完,会将网盘链接发出。
序号目录:
- 单选题
HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号1
HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号2
HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号3
HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号4 - 多选题
HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号1
HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号2
HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号3
注:题目是乱序,每次考试,选项的顺序都不同
多选题题库 - 序号3
21、使用ArkUI组件复用之后,还是没有显著提升列表滑动场景的性能,属于组件复用未生效可能的原因有?(不确定,把所有选项列出)
A、页面嵌套了过多自定义组件。
B、在aboutToReuse回调函数中更新了冗余的状态变量
C、没有在aboutToReuse更新关联的状态变量数据。
D、复用的自定义组件中使用if等条件渲染语句导致结构不相同,未使用reuseld标记。
22、下面关于动态import描述正确的是(不确定,把所有选项列出)
A、动态导入import()是个异步接口,调用后将返回一个promise
B、常量动态import也必须配置runtimeOnly选项
C、动态import根据入参是否为常量字符串分为常量动态import和变量动态import两种
D、HAR模块间只有变量动态import时可以进行模块解耦
动态import-应用程序包开发与使用-应用程序包基础知识-开发基础知识-基础入门 | 华为开发者联盟 (huawei.com)
23、下面关于混淆规则描述正确的是
A、-disable-obfuscation:关闭所有混淆
B、-enable-property-obfuscation:开启顶层作用域名称混淆
C、-enable-export-obfuscation:开启直接导入或导出的类或对象的名称和属性名混淆
D、-enable-toplevel-obfuscation:开启属性混淆
代码混淆-ArkTS(方舟编程语言)-应用框架 | 华为开发者联盟 (huawei.com)
24、在ArkTS中,以下代码片段正确的是
function fn(x: string | number): string {
return 'value: ' + x;
}
type funcType = (ns: string | number) => string;
let func: funcType = fn;
function fn(x: string | number): string {
return 'value:' + x;
}
type funcType = (ns: string | number) => string;
let func: funcType = fn;
function fn(x: string): string {
return x;
}
type funcType = (ns: string| number) => string;
let func: funcType = fn;
function fn(x: string | number): void {
console.log('value: ' + x);
}
type funcType = (ns: string | number) => string;
let func: funcType = fn;
A、A
B、B
C、C
D、D
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();
B、foo(1, 2);
C、foo(1, 2, 3);
D、foo(1, 2, 3, 4);
26、以下关于Taskpool和Worker的描述正确的是
A、Worker的任务执行时长上限是无限制
B、Worker支持取消已发起的任务
C、TaskPool不支持线程复用
D、TaskPool支持设置任务的优先级
TaskPool和Worker的对比 (TaskPool和Worker)-使用多线程并发能力进行开发-并发-ArkTS(方舟编程语言)-应用框架 | 华为开发者联盟 (huawei.com)
27、List组件onScrollIndex事件触发时机是
A、List组件显示区域内第一个子组件或最后一个子组件或中间位置子组件索引值变化时触发
B、List组件首次加载完成时触发
C、List组件滚动停止时触发
D、List组件列表滚动时每帧触发
List-容器组件-ArkTS组件-ArkUI(方舟UI框架)-应用框架 | 华为开发者联盟 (huawei.com)
28、如果想让grid上的捏合手势生效,而不跟grid上的滚动手势形成冲突,. xxxx?手势接口应该怎么配置?
Grid() {
ForEach(this.numbers, (day: string) => {
ForEach(this.numbers, (day: string) => {
GridItem() {
Text(day)
.fontSize(16)
.backgroundColor(0xF9CF93)
.width('100%')
.height(80)
.textAlign(TextAlign.Center)
}
}, (day: string) => day)
}, (day: string) => day)
}
.columnsTemplate('1fr'.repeat(this.columns))
.columnsGap(10)
.rowsGap(10)
.width('90%')
.scrollBar(BarState.Off)
.backgroundColor(0xFAEEE0)
.height('100%')
.cachedCount(3)
// 切换列数item位置重排动画
.animation({
duration: 300,
curve: Curve.Smooth
})
.xxxx?(
PinchGesture( )
.onActionEnd((event: GestureEvent) => {
console.info('end scale:' + event.scale)
// 手指分开,减少列数以放大Item, 触发阈值可以自定义,示例为2
if (event.scale > 2) {
this.columns--
} else if (event.scale < 0.6) {
this.columns++
}
// 可以根据设备屏幕宽度设定最大和最小列数,此处以最小1列最大4列为例
this.columns = Math.min(4, Math.max(1, this.columns));
AppStorage.setOrCreate('columnsCount', this.columns)
})
)
A、gesture
B、GesureGroup
C、parallelGesture
D、priorityGesture
绑定手势方法-使用手势事件-支持交互事件-UI开发 (ArkTS声明式开发范式)-ArkUI(方舟UI框架)-应用框架 | 华为开发者联盟 (huawei.com)
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"
}
}
// B
{
"app": {
"bundleName": "com.example.myapplication",
"vendor": "example",
"versionCode": 1000000,
"versionName": "1.0.2",
"icon": "$media:app_icon",
"label": "$string: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",
}
}
// D
{
"app": {
"bundleName": "com.example.myapplication",
"vendor": "example",
"versionCode": 1000000,
"versionName": "1.0.2",
"icon": "$media:app_icon",
"label": "$string:app_name"
}
}
A、A
B、B
C、C
D、D
app.json5配置文件-应用配置文件(Stage模型)-开发基础知识-基础入门 | 华为开发者联盟 (huawei.com)
30、使用如下的代码去启动一个ability时,哪种skills定义的组件能够被匹配到:
let want = {
"uri": "https://www.test.com:8080/query/books",
"type": "text/plain"
}
context.startAbility(want).then((data))=> {
console.log(TAG + "startAbility success") ;
}).catch((err))=> {
console.log(TAG + "startAbility failed.");
}
// A
"skills": [
{
"uris":[
{
"scheme": "https",
"host": "Www.test.com",
"type": "text/plain"
}
]
}
]
// B
"skills": [
{
"uris":[
{
"scheme": "https",
"host": "www.test.com",
"pathStartWith": "query/books",
"type" : "text/plain"
}
]
}
]
// C
"skills": [
{
"uris":[
{
"scheme": "https",
"host": "www.test.com",
"pathStartwith" :"query/books",
"type" : "text/*"
}
]
}
]
// D
"skills":[
{
"uris":[
{
"scheme": "https",
"type": "text/*"
}
]
}
]
A、A
B、B
C、C
D、D
显式Want与隐式Want匹配规则-信息传递载体Want-Stage模型应用组件-Stage模型开发指导-Ability Kit(程序框架服务)-应用框架 | 华为开发者联盟 (huawei.com)