HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号3 ...

打印 上一主题 下一主题

主题 703|帖子 703|积分 2109

高级的题库更新之后,专业性更强了,不是真正从事这一行的,很难做出来。本人就是个小菜鸡,有一些题,我也不想不明白。标题的答案我尽大概的找到出处,假如读者发现错误或有补充建议,接待评论或私信笔者。笔者这篇就当抛砖引玉,各位读者可以当作测验的一个参考
  底子认证题库请移步:HarmonyOS应用开发者底子认证题库


注:有读者反馈,题库的代码块比较多,打开文章时会卡死。以是笔者将题库拆分,以20道题为一组,题库目录如下,读者可以按需跳转。假如对您的阅读产生不便,笔者在这里向大家说声抱歉,请各位读者包涵。该题库已整理完毕,笔者不再更新。笔者连续考了三次,都过了,以是答案应该没什么太大题目。有必要题库文档的可以自取。祝各位读者好运(๑¯ω¯๑)。

序号目录:



  • 单选题
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号1
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号2
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号3
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号4
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号5
  • 多选题
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号1
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号2
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号3
  • 答案纯享版
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 答案纯享版

题库文档链接(自取):https://pan.baidu.com/s/153tDk4dVv_MmLEyzOqW9hQ?pwd=xkgr


注:标题是乱序,每次测验,选项的顺序都差别

单选题题库 - 序号3


41、在方舟字节码的函数调用规范中,前三个参数表现的含义分别是
​ A、new.Target、this、函数对象本身
​ B、this、函数对象本身、new.Target
​ C、new.Target、函数对象本身、this
​ D、函数对象本身、new.Target、this
方舟字节码基本原理-学习ArkTS语言-底子入门 | 华为开发者联盟 (huawei.com)

42、下面关于方舟字节码格式IMM16_ID16_IMM8描述正确的是
​ A、8位操作码,16位立即数,16位id,8位立即数
​ B、8位操作码,16位立即数,2个8位寄存器
​ C、8位操作码,16位立即数,16位id,8位寄存器
​ D、16位前缀操作码,16位立即数,8位寄存器
方舟字节码基本原理-学习ArkTS语言-底子入门 | 华为开发者联盟 (huawei.com)

43、以下关于垂直滚动Grid组件利用cachedCount属性的分析正确的是
​ A、设置cachedCount为1,则Grid在显树模围上下各缓存1个Gridltem
​ B、设置cachedCount为1,则Grid在显树模围上下各缓存1行Gridltem
​ C、设置cachedCount为1,则Grid在显树模围下方缓存1行Gridltem
​ D、设置cachedCount为1,则Grid在显树模围下方缓存1个Gridltem
Grid-容器组件-ArkTS组件-ArkUI(方舟UI框架)-应用框架 - 华为HarmonyOS开发者 (huawei.com)

44、从桌面冷启动如下应用代码,点击Change按钮5次,整个过程中,代码中的2条log依次出现的次数是:(不确定,把全部选项列出)
  1. class Data {
  2.   num: number
  3.   type: string
  4.   constructor(num: number, type: string) {
  5.     this.num = num;
  6.     this.type = type;
  7.   }
  8. }
  9. @Reusable
  10. @Component
  11. struct Item {
  12.   @State data: Data | undefined = undefined;
  13.   aboutToAppear(): void {
  14.     console.log("Demo log1");
  15.   }
  16.   aboutToReuse(params: ESObject): void {
  17.     console.log("Demo 1og2");
  18.     this.data = params.data
  19.   }
  20.   build() {
  21.     Text("num = " + this.data?.num + ", type = " + this.data?.type)
  22.   }
  23. }
  24. @Entry
  25. @Component
  26. struct Index {
  27.   data1: Data = new Data(1, "type1");
  28.   data2: Data = new Data(2, "type2");
  29.   @State data: Data = this.data1
  30.   build() {
  31.     Column() {
  32.       if (this.data.type == "type1") {
  33.         Item({ data: this.data }).reuseId(this.data.type)
  34.       } else {
  35.         Item({ data: this.data }).reuseId(this.data.type)
  36.       }
  37.       Button('Change').onClick(() => {
  38.         if (this.data === this.data1) {
  39.           this.data = this.data2
  40.         } else {
  41.           this.data = this.data1
  42.         }
  43.       })
  44.     }
  45.   }
  46. }
复制代码
A、2,4
B、6,0
​ C、1,0
D、1,5

45、以下哪份代码可以实现下图Grid布局

  1. //        A、通过设置Gridltem的columnStart和columnEnd
  2. @Entry
  3. @Component
  4. struct GridExample3 {
  5.   numbers: String[] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
  6.   scroller: Scroller = new Scroller()
  7.   build() {
  8.     Column({ space: 5 }) {
  9.       Grid(this.scroller) {
  10.         ForEach(this.numbers, (day: string) => {
  11.           if (day === '0' || day === '5') {
  12.             GridItem() {
  13.               Text(day)
  14.                 .fontSize(16)
  15.                 .backgroundColor(0xF9CF93)
  16.                 .width('100%')
  17.                 .height(80)
  18.                 .textAlign(TextAlign.Center)
  19.             }.columnStart(1).columnEnd(4)
  20.           } else {
  21.             GridItem() {
  22.               Text(day)
  23.                 .fontSize(16)
  24.                 .backgroundColor(0xF9CF93)
  25.                 .width('100%')
  26.                 .height(80)
  27.                 .textAlign(TextAlign.Center)
  28.             }
  29.           }
  30.         }, (day: string) => day)
  31.       }
  32.       .columnsTemplate('1fr 1fr 1fr 1fr')
  33.       .columnsGap(10)
  34.       .rowsGap(10)
  35.       .scrollBar(BarState.Off)
  36.       .width('100%')
  37.       .backgroundColor(0xFAEEE0)
  38.       .height(350)
  39.     }
  40.   }
  41. }
复制代码
  1. //        B、通过设置不同Gridltem的宽度
  2. @Entry
  3. @Component
  4. struct GridExample3 {
  5.   numbers: String[] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
  6.   scroller: Scroller = new Scroller()
  7.   columnGap: number = 10
  8.   gridItemWidth: number = 80
  9.   build() {
  10.     Column({ space: 5 }) {
  11.       Grid(this.scroller) {
  12.         ForEach(this.numbers, (day: string) => {
  13.           if (day === '0' || day === '5') {
  14.             GridItem() {
  15.               Text(day)
  16.                 .fontSize(16)
  17.                 .backgroundColor(0xF9CF93)
  18.                 .width(this.gridItemWidth * 4 + this.columnGap * 3)
  19.                 .height(80)
  20.                 .textAlign(TextAlign.Center)
  21.             }
  22.           } else {
  23.             GridItem() {
  24.               Text(day)
  25.                 .fontSize(16)
  26.                 .backgroundColor(0xF9CF93)
  27.                 .width(this.gridItemWidth)
  28.                 .height(80)
  29.                 .textAlign(TextAlign.Center)
  30.             }
  31.           }
  32.         }, (day: string) => day)
  33.       }
  34.       .columnsTemplate('1fr 1fr 1fr 1fr')
  35.       .columnsGap(this.columnGap)
  36.       .rowsGap(10)
  37.       .scrollBar(BarState.Off)
  38.       .width('100%')
  39.       .backgroundColor(0xFAEEE0)
  40.       .height(350)
  41.     }
  42.   }
  43. }
复制代码
  1. //        C、通过GridLayoutOptions
  2. @Entry
  3. @Component
  4. struct GridExample3 {
  5.   numbers: String[] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
  6.   scroller: Scroller = new Scroller()
  7.   layoutOptions1: GridLayoutOptions = {
  8.     regularSize: [1, 1],
  9.     irregularIndexes: [0, 5],
  10.   }
  11.   build() {
  12.     Column({ space: 5 }) {
  13.       Grid(this.scroller, this.layoutOptions1) {
  14.         ForEach(this.numbers, (day: string) => {
  15.           GridItem() {
  16.             Text(day)
  17.               .fontSize(16)
  18.               .backgroundColor (0xF9CF93)
  19.               .width('100%')
  20.               .height(80)
  21.               .textAlign(TextAlign.Center)
  22.           }
  23.         }, (day: string) => day)
  24.       }
  25.       .columnsTemplate('1fr 1fr 1fr 1fr')
  26.       .columnsGap(10)
  27.       .rowsGap(10)
  28.       .scrollBar(BarState.Off)
  29.       .width('100%')
  30.       .backgroundColor(0xFAEEE0)
  31.       .height(350)
  32.     }.align(Alignment.Center)
  33.   }
  34. }
复制代码
​ A、通过设置Gridltem的columnStart和columnEnd
​ B、通过设置差别Gridltem的宽度
​ C、通过GridLayoutOptions

46、已知下列代码PageOne页面为navigation中的某一子页面,依次点击PageOne页面中toPageTwo按钮,PageTwo页面中toPageOne按钮,此时获取当前页面的路由栈数目为多少(不确定,把全部选项列出)
  1. // PageOne.ets
  2. @Component
  3. export struct PageOneTmp {
  4.   @Consume('pageInfos') pageInfos: NavPathStack;
  5.   build() {
  6.     NavDestination() {
  7.       Column() {
  8.         Button('toPageTwo', { stateEffect: true, type: ButtonType.Capsule })
  9.           .width('80%')
  10.           .height(40)
  11.           .margin(20)
  12.           .onClick(() => {
  13.             this.pageInfos.pushPathByName('pageTwo',"")
  14.           })
  15.       }.width('100%').height('100%')     
  16.     }.title('pageOne')
  17.     .onBackPressed(() => {
  18.       const popDestinationInfo = this.pageInfos.pop()
  19.       console.log('pop返回值' + JSON.stringify(popDestinationInfo))
  20.       return true
  21.     })
  22.   }
  23. }
复制代码
  1. // PageTwo.ets
  2. export class Pages{
  3.   names: string = ""
  4.   values: NavPathStack | null = null
  5. }
  6. @Builder
  7. export function pageTwoTmp(info: Pages){
  8.   NavDestination() {
  9.     Column(){
  10.       Button('toPageOne', { stateEffect: true, type: ButtonType.Capsule })
  11.         .width('80%')
  12.         .height(40)
  13.         .margin(20)
  14.         .onClick(() => {
  15.           (info.values as NavPathStack).pushPathByName('pageOne', null)
  16.         })
  17.     }.width('100%').height('100%')
  18.   }.title('pageTwo')
  19.   .onBackPressed(() => {
  20.     (info.values as NavPathStack).pop()
  21.     return true
  22.   })
  23. }
复制代码
A、1
B、2
​ C、3
D、4

47、在HarmonyOS应用开发中,当开发者遇到必要分析Release版本应用的瓦解或异常堆栈信息时,为了准确地将堆栈追踪信息对应到源代码的具体位置,以下哪个描述是正确的做法或理解
​ A、开发者需手动将Release构建生成的so文件与源代码举行映射,共同第三方工具举行堆栈信息还原,虽然过程繁琐,但终极能定位到题目代码位置
​ B.由于Release应用颠末优化和去除Debug信息 ,直接从堆栈跟踪到源代码行号是不大概的,开发者只能依靠日志信息手工推测题目地点
​ C、DevEco Studio提供的Release应用堆栈剖析功能,要求开发者在遇到题目时,需上传构建产物中的特定文件(如so、source map、nameCache等)到指定工具或界面,借助这些文件辅助剖析堆栈信息,实现从Release堆栈到源码的映射,便于快速定位题目
​ D、DevEco Studio通过集成的Release应用堆栈剖析功能,自动利用构建时产生的so文件、source map文件、nameCache文件等,无需额外操作即可直接在Release应用中提供具体的源码级堆栈追踪信息
堆栈轨迹分析-故障分析-应用/服务调试-DevEco Studio | 华为开发者联盟 (huawei.com)

48、小李正在利用DevEco Studio举行Harmony0S应用的开发工作,他必要对一个频仍被调用的函数calculateData()举行重构,为了帮助小李高效地找到calculateData()函数的全部引用位置,并确保重构时考虑周全,以下哪个步骤是正确的利用DevEco Studio的“Find Usages”功能的操作方法
​ A、小李应将光标置于calculateData()函数的名称上,按下Ctrl + Shift + F(macOS为Command + Shift + F)全局搜索该函数名,然后在搜索效果中筛选出真正的调用位置。
​ B、小李应该在菜单栏中选择“Navigate” > “Class”来打开类欣赏器, 从中找到calculateData()函数, 并在此界面中手动检查全部引用。
​ C、小李只需将光标定位在calculateData()函数名上,右键点击并选择“Find Usages",或者直接利用快捷键Alt+ F7(macOS为Option+ F7),DevEco Studio会自动列出该函数在项目中的全部引用位置。
​ D、小李应当在项目目录树中找到calculateData()函数地点的文件, 直接双击打开文件,然后逐行扫描代码以手动查找该函数的全部调用位置。
代码阅读-代码编辑-DevEco Studio | 华为开发者联盟 (huawei.com)

49、在利用DevEco Studio的Profiler举行HarmonyOS应用或服务性能分析时,面对应用出现卡顿、加载慢等性能瓶颈题目,以下哪个描述最贴切地分析了“Time场景分析任务”的功能及其对开发者优化流程的帮助
​ A、Time场景分析任务仅提供应用/服务运行时的CPU利用率概览,帮助开发者大抵判断性能瓶颈,但不提供深入分析
​ B、Time场景分析任务专注于内存管理,帮助开发者监控应用内存走漏,但对办理卡顿和加载耗时题目帮助有限
​ C、Time场景分析任务在应用运行时,通过显示全部函数实行的耗时排序列表,辅助开发者手动对比寻找耗时最短的函数举行优化
​ D、Time场景分析任务展示热点地区内的CPU和进程级调用栈耗时情况,支持代码跳转,助力开发者快速定位并优化耗时较长的代码段
底子耗时分析:Time分析-性能分析-DevEco Studio | 华为开发者联盟 (huawei.com)

50、开发者小林正在利用DevEco Studio开发一款HarmonyOS应用, 并在真机上举行调试。他在运行应用的过程中突然发现一处UI布局必要微调,盼望在不中断当前应用运行的情况下看到调解效果,基于DevEco Studio提供的Hot Reload (热重载)能力,以下哪一种做法能让小林最有用地实现他的需求
​ A、继承运行应用,手动重启应用后检查布局是否符合预期
​ B、在不关闭应用的情况下,直接修改代码并生存,借助Hot Reload功能在真机上实时查看布局调解的效果
​ C、利用模拟器替代真机举行调试,由于Hot Reload仅在模拟器上支持代码改动的即时生效
​ D、立即制止应用,修改代码后重新编译并部署到真机上
Hot Reload-代码调试-应用/服务调试-DevEco Studio | 华为开发者联盟 (huawei.com)

51、项目必要为差别的设备形态(如手机、智能手表)提供定制化构建。请分析如安在DevEco studio中设置差别的构建配置,以生成针对差别设备的hap包?(不确定,把全部选项列出)
A、在工程级别build-profile.json5定义多个product,在每个product的config/distributionFilter中定义差别的设备范例
B、在工程级别build-profile.json5定义多个product,在每个product的config/deviceType中定义差别的设备范例
​ C、在模块级别build-profile.json5定义多个target,在每个target的config/deviceType中定义差别的设备范例
D、在模块级别build-profile.json5定义多个target,在每个target的config/distributionFilter中定义差别的设备范例

52、一个复杂的项目,该项目不但包含主入口模块(Entry Module),另有多个特性的功能模块(Feature Modules/HSP),而且这些模块存在着相互调用关系。为了确保在调试过程中可以或许完整地测试全部交互逻辑,必要将涉及到的全部模块的HAP包都部署到目的设备上。请从以下选项中选择正确的操作步骤来配置DevEco Studio,以便一次性部署和调试项目中的多个模块
​ A、无需特殊配置,DevEco Studio会自动检测到项目中的全部模块依靠,并在每次调试运行时自动部署全部相关HAP包。
​ B、在项目布局界面手动选择每个模块,单独编译并逐一将生成的HAP包通过HDC下令推送到设备上。
​ C、进入“Run > Edit Configurations”菜单,“Deploy Multi Hap”选项卡下,勾选“Deploy Multi Hap Packages”,随后在列表中选择必要部署的模块。
​ D、直接点击运行按钮,DevEco Studio会弹出对话框询问必要部署哪些模块,从中选择必要的模块后开始调试。
自定义运行/调试配置-应用/服务调试-DevEco Studio | 华为开发者联盟 (huawei.com)

53、项目中涉及多个类的继承与重写。为了快速实现子类对父类方法的重写,小华想利用DevEco Studio提供的便捷功能来提高开发效率。他了解到,通过一个特定的操作流程,可以直接依据父类的模板生成子类中必要重写的方法代码,而无需手动编写完整方法体,在DevEco Studio中,如何正确利用Override Methods功能来快速生成子类必要重写的方法代码
​ A、将光标放置于任何代码行,按下Ctrl+B,然后在弹出菜单中选择Override Methods,之后勾选必要重写的方法并确认。
​ B、在项目布局视图中找到目的子类,双击打开后直接在代码编辑区输入重写方法的签名,DevEco Studio将自动完成剩余代
码。
​ C、通过菜单栏File > Settings,配置Override Methods快捷方式,之后在代码中仅需选中父类方法名,即可自动在子类中生
成重写代码。
​ D、将光标定位到子类的定义处,按下Ctrl+O(或右键单击选择Generate... > Override Methods),在弹出的对话框中选择 要重写的方法,点击OK完成生成。

54、下面的配置存在有几处错误()
  1. //        module.json5配置文件:
  2. {
  3.         "module": {
  4.                 "name": "entry",
  5.                 // ...
  6.                 "abilities": [
  7.                         {
  8.                                 "name": "EntryAbility",
  9.                                 "srcEntry": "./ets/entryability/EntryAbility.ets",
  10.                                 // ...
  11.                                 "skills": [
  12.                                         {
  13.                                                 "entities": [
  14.                                                         "entity.system.home"
  15.                                                 ],
  16.                                                 "actions": [
  17.                                                         "ohos.want.action.home"
  18.                                                 ]
  19.                                         }
  20.                                 ],
  21.                                 "metadata": [
  22.                                         {
  23.                                                 "name": "ohos.entry.shortcuts",
  24.                                                 "resource": "$profile:shortcuts_config"
  25.                                         }
  26.                                 ]
  27.                         }
  28.                 ]
  29.     }
  30. }
复制代码
  1. //        在/resources/base/profile/目录下配置shortcuts_config.json配置文件:
  2. {
  3.         "shortcuts": [
  4.                 {
  5.                         "shortcutId": "id_test1",
  6.             //        ==========================        【shortcutLabel】字符串不符合匹配规则
  7.                         "label": "shortcutLabel",
  8.                         "icon": "$media:shortcutIcon",
  9.                         "wants": [
  10.                                 {
  11.                                         "bundleName": "com.ohos.hello",
  12.                                         "moduleName": "entry",
  13.                                         "abilityName": "EntryAbility"
  14.                                 }
  15.                         ]
  16.                 }
  17.         ]
  18. }
复制代码
​ A、1
​ B、2
​ C、3
​ D、4
module.json5配置文件-应用配置文件(Stage模子)-开发底子知识-底子入门 | 华为开发者联盟 (huawei.com)

55、下面的配置存在有几处错误()(不确定,把全部选项列出)
  1. //        app.json5配置文件:
  2. {
  3.   "app": {
  4.     "bundleName": "com.example.myapplication",
  5.     "vendor": "example",
  6.     "versionCode": 1000000,
  7.     "versionName": "1.0.2",
  8.     "icon": "$media:app_icon",
  9.     "label": "$string:app_name",
  10.     "bundleType": "app"
  11.   }
  12. }
复制代码
  1. // module.json5配置文件:
  2. {
  3.    
  4.         "module": {
  5.         
  6.                 "name": "feature",
  7.                    //...
  8.         
  9.                 "atomicService": {
  10.         
  11.                         "preloads":[
  12.             
  13.                                 {
  14.                
  15.                                         "moduleName": "feature"
  16.                
  17.                                 }
  18.                         ]
  19.                 }
  20.         }
  21. }
复制代码
A、1
​ B、2
C、3
D、4
app.json5配置文件-应用配置文件(Stage模子)-开发底子知识-底子入门 | 华为开发者联盟 (huawei.com)
module.json5配置文件-应用配置文件(Stage模子)-开发底子知识-底子入门 | 华为开发者联盟 (huawei.com)

56、(1)在UIAbility的onCreate生命周期中通过EventHub的on注册“event1”和“event2”事件。
  1. import { hilog } from '@kit.PerformanceAnalysisKit';
  2. import { UIAbility, Want, AbilityConstant } from '@kit.AbilityKit';
  3. const DOMAIN_NUMBER: number = 0xFF00;
  4. const TAG: string = '[EventAbility]';
  5. export default class EntryAbility extends UIAbility {
  6.   onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
  7.     //获取UlAbility实例的上下文
  8.     let context = this.context;
  9.     //获取eventHub
  10.     let eventhub = this.context.eventHub;
  11.     //执行订阅操作
  12.     eventhub.on('event1', this.eventFunc);
  13.     eventhub.on('event2', this.eventFunc);
  14.     hilog.info(DOMAIN_NUMBER, TAG, '%{public}s', 'Ability onCreate');
  15.   }
  16.   // ..
  17.   eventFunc(argOne: Context, argTwo: Context): void {
  18.     hilog.info(DOMAIN_NUMBER, TAG, 'receive.' + `${argOne},${argTwo}`);
  19.     return;
  20.   }
  21. }
复制代码
(2)在UI组件的click处理事件中调用如下的eventHubFunc,连续点击2次该控件后,运行日志输出是什么:
  1. // 题目获取上下文的方式是错的,要导这个common包才行
  2. import common from '@ohos.app.ability.common';
  3. import { promptAction } from '@kit.ArkUI';
  4. @Entry
  5. @Component
  6. struct Page_EventHub {
  7.   private context = getContext(this) as common.UIAbilityContext;
  8.   eventHubFunc(): void {
  9.     this.context.eventHub.emit('event1');
  10.     this.context.eventHub.emit('event2', 2, 'test2');
  11.     this.context.eventHub.off('event1');
  12.   }
  13.   build() {
  14.     Column() {
  15.       //...
  16.       List({ initialIndex: 0 }) {
  17.         ListItem() {
  18.           Row() {
  19.             //...
  20.           }
  21.           .onClick(() => {
  22.             this.eventHubFunc();
  23.             promptAction.showToast({
  24.               message: $r('app.string.EventHubFuncA')
  25.             });
  26.           })
  27.         }
  28.       }
  29.       //...
  30.     }
  31.     //...
  32.   }
  33. }
复制代码
​ A、
  1. [Example].[Entry].[EntryAbility] receive. []
  2. [Examp1e].[Entry].[EntryAbility] receive. [2,"test2" ]
  3. [Examp1e].[Entry].[EntryAbility] receive. []
  4. [Example].[Entry].[EntryAbility] receive. [2,"test2"]
复制代码
​ B、答案↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
  1. [Example].[Entry].[EntryAbility] receive. []
  2. [Example].[Entry].[EntryAbility] receive. [2,"test2"]
  3. [Examp1e].[Entry].[EntryAbility] receive. [2,"test2"]
复制代码
​ C、
  1. [Examp1e].[Entry].[EntryAbility] receive. []
  2. [Example].[Entry].[EntryAbility] receive. [2,"test2"]
复制代码
​ D、
  1. [Example].[Entry].[EntryAbility] receive. []
  2. [Example].[Entry].[EntryAbility] receive. [2,"test2"]
  3. [Example].[Entry].[EntryAbility] receive. []
复制代码

57、singleton模式的UIAbility,在冷启动时生命周期的实行顺序是:
​ A、onCreate->onWindowStageCreate->onForeground
​ B、onCreate->onBackground->onForeground
​ C、onCreate ->onForeground->onWindowStageCreate
​ D、onCreate->onBackground->onWindowStageCreate
UIAbility组件生命周期-UIAbility组件-Stage模子应用组件-Stage模子开发指导-Ability Kit(程序框架服务)-应用框架 | 华为开发者联盟 (huawei.com)

58、开发者开发了一个应用,该应用只有一个hap包,其module.json5中abilities的配置如下所示,包含1个UlAbility(无Web组件)、1个FormExtensionAbility组件 、1个WorkSchedulerExtensionAbility组件,那么该应用在运行过程中,最多会存在几个应用进程:(不确定,把全部选项列出)
  1. "abilities": [
  2.    
  3.         {
  4.         
  5.                 "name": "EntryAbility",
  6.         
  7.                 "srcEntry": "./etc/entryability/EntryAbility.ts",
  8.         
  9.                 "description": "$string:EntryAbility_desc",
  10.         
  11.                 "exported": ture
  12.         
  13.         }
  14.    
  15. ],
  16.    
  17. "extensionAbilities": [
  18.    
  19.         {       
  20.         
  21.                 "name": "ClockFormExtensionAbility",
  22.         
  23.                 "srcEntrance": "./ets/form/ClockFormExtensionAbility.ts",
  24.                 
  25.                 "type": "form"
  26.         
  27.         },
  28.    
  29.         {
  30.         
  31.                 "name": "TipWorkSchedulerExtensionAbility",
  32.                 "srcEntrance": "./ets/service/TipWorkSchedulerExtensionAbility.ts",
  33.         
  34.                 "type": "workScheduler"
  35.         
  36.         }
  37.    
  38. ]
复制代码
A、1个
B、2个
​ C、3个
D、4个

59、hiAppEvent提供的Watcher接口,必要订阅到OS的瓦解事件,正确的实现方式()
  1. //        A
  2. hiAppEvent.addWatcher({
  3.         name: "watcher",
  4.         appEventFilters: [
  5.         {
  6.                         names: [hiAppEvent.event.APP_FREEZE]
  7.         }
  8.         ],
  9.         onReceive: (domain: string, appEventGroups: Array<hiAppEvent.AppEventGroup>) => {
  10.         }
  11. })
复制代码
  1. //        B
  2. hiAppEvent.addWatcher({
  3.         name: "watcher",
  4.         onReceive: (domain: string, appEventGroups: Array<hiAppEvent.AppEventGroup>) => {
  5.         }
  6. })
复制代码
  1. //        C
  2. hiAppEvent.addWatcher({
  3.         name: "watcher",
  4.         appEventFilters: [
  5.                 {
  6.                         domain: hiAppEvent.domain.OS,
  7.                         names: [hiAppEvent.event.APP_CRASH]
  8.                 }
  9.         ],
  10.         onReceive: (domain: string, appEventGroups: Array<hiAppEvent.AppEventGroup>) => {
  11.         }
  12. })
复制代码
  1. //        D
  2. hiAppEvent.addWatcher({
  3.         name: "watcher",
  4.         appEventFilters: [
  5.                 {
  6.                         domain: hiAppEvent.domain.OS,
  7.                         names: [hiAppEvent.event.APP_CRASH]
  8.                 }
  9.         ]
  10. })
复制代码
​ A、A
​ B、B
​ C、C
​ D、D
订阅瓦解事件(ArkTS)-瓦解事件-体系事件-事件订阅-HiAppEvent利用指导-Performance Analysis Kit(性能分析服务)-调测调优-体系 | 华为开发者联盟 (huawei.com)

60、当标志了@Reuseable的自定义组件实现了组件复用后,这个组件的复用范围是什么?
​ A、标志了@Reuseable的自定义组件的外层容器节点范围内
​ B、标志了@Reuseable的自定义组件的父组件范围内
​ C、整个页面都可以复用
​ D、整个应用内都可以复用
组件复用最佳实践-开发高性能ArkUI-性能优化-性能 | 华为开发者联盟 (huawei.com)


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

西河刘卡车医

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表