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

打印 上一主题 下一主题

主题 1028|帖子 1028|积分 3084

基础认证题库请移步: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


注:标题是乱序,每次考试,选项的顺序都不同

多选题题库 - 序号1


1、在开辟过程中,我们可以将每个功能模块作为一个独立的Module进行开辟。关于Module,下列选项说法精确的是?
​ A、feature类型的Module:应用的动态特性模块,编译后生成feature类型的HAP。一个应用中可以包含一个或多个feature类型的HAP,也可以不包含。
​ B、Shared Library:动态共享库。HSP中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。
​ C、Static Library:静态共享库。HAR中的代码和资源跟随使用方编译,假如有多个使用方,它们的编译产物中会存在多份相同拷贝。
​ D、entry类型的Module:应用的主模块,包含应用的入口界面、入口图标和主功能特性,编译后生成entry类型的HAP。每一个应用分发到同一类型的装备上的应用程序包,可以包含一个或多个entry类型的HAP。
应用程序包概述-应用程序包基础知识-开辟基础知识-基础入门 | 华为开辟者联盟 (huawei.com)

2、某业务团队发现用户对他们App的某个特性使用率并不高,为了节流用户首次下载安装包的体积,考虑将该特性做成按需加载,那么保举该特性使用的工程模块类型是?
​ A、hap
​ B、app
​ C、hsp
​ D、har

3、哪些是持续部署最佳实践?
​ A、监控和回滚机制:实时监控部署后的应用状态,如有问题及时回滚。
​ B、主动化部署流程:从代码提交到部署的整个流程应尽可能主动化。
​ C、手工部署:持续部署可以采用手工部署的方式发布软件:
​ 1、有一份非常细致的文档,该文档描述了实行步骤及每个步骤中易出错的地方;
​ 2、以手工测试来确认该应用程序是否运行精确;
​ 3、在发布时,常常会修正一些在发布过程中发现的问题。
​ D、灰度发布:先在小部分用户或地域进行部署,观察没问题后再全面推广。
​ E、开辟完成之后再向类生产环境部署:当软件被第一次部署到类生产环境(好比试运行环境)时,就是大部分开辟工作完成时,至少是开辟团队认为“该软件开辟完成了”。
​ F、手工配置管理:
​ 1、直接修改生产环境上的配置来改变系统配置;
​ 2、集群中各节点的举动有所不同;
​ 3、靠人手工恢复环境。手动记载配置包罗使用系统、应用服务器、关系型数据库管理系统、Web服务器或其他基础设施设置。
​ G、环境一致性:保持开辟、测试、生产等环境的高度一致性。

4、以下代码片断哪几处违反了ArkTS语法规范。
  1. class Point {
  2.   public x: number
  3.   public y: number
  4.   constructor(x: number, y: number) {
  5.     this.x = x
  6.     this.y = y
  7.   }
  8. }
  9. let p = new Point(1.0, 1.0);
  10. delete p.x;
  11. p.z = 2.0;
  12. p.x = 'Hello!';
复制代码
​ A、let p = new Point(1.0, 1.0);
​ B、delete p.x;
​ C、p.z = 2.0;
​ D、p.x = 'Hello!';

5、以下napi代码有问题的是(不确定,把全部选项列出)
  1. //        A
  2. static napi_value Demo(napi_env env, napi_callback_info info)
  3. {
  4.     constexpr size_t arrSize = 1000;
  5.     napi_value arrBuffer = nullptr;
  6.     void *data = nullptr;
  7.     napi_create_arraybuffer(env, arrSize * sizeof(int32_t), &data, &arrBuffer);
  8.     int32_t *i32Buffer = reinterpret_cast<int32_t *>(data);
  9.     for (int i = 0; i < arrSize; i++) {
  10.         i32Buffer[i] = i;
  11.     }
  12.     return arrBuffer;
  13. }
复制代码
  1. //        B
  2. napi_ref g_ref = nullptr;
  3. /***** excute in main thread *****/
  4. static napi_value DemoInMainThread(napi_env env, napi_callback_info info)
  5. {
  6.     napi_value string = nullptr;
  7.     napi_create_string_utf8(env, "bar", NAPI_AUTO_LENGTH, &string);
  8.     napi_create_reference(env, string, 1, &g_ref);
  9.     return string;
  10. }
  11. /***** excute in worker thread *****/
  12. static napi_value DemoInWorkerThread(napi_env env, napi_callback_info info)
  13. {
  14.     napi_value string = nullptr;
  15.     napi_get_reference_value(env, g_ref, &string);
  16.    
  17.     napi_value object = nullptr;
  18.     napi_create_object(env, &object);
  19.    
  20.     napi_set_named_property(env, object, "foo", string);
  21.     return object;
  22. }
复制代码
  1. //        C
  2. struct CallbackContext {
  3.     napi_env env = nullptr;
  4.     napi_ref callbackRef = nullptr;
  5.     int32_t retData = 0;
  6. };
  7. void callbackTest(CallbackContext *context)
  8. {
  9.     uv_loop_s *loop = nullptr;
  10.     napi_get_uv_event_loop(context->env, &loop);
  11.     uv_work_t *work = new uv_work_t;
  12.     context->retData = 1;
  13.     work->data = (void *)context;
  14.     uv_queue_work(
  15.         loop, work, [](uv_work_t *work) {},
  16.         // using callback function back to JS thread
  17.         [](uv_work_t *work, int status)
  18.         {
  19.             CallbackContext *context = (CallbackContext *)work->data;
  20.             napi_value callback = nullptr;
  21.             napi_get_reference_value(context->env, context->callbackRef, &callback);
  22.             napi_value retArg;
  23.             napi_create_int32(context->env, context->retData, &retArg);
  24.             napi_value ret;
  25.             napi_call_function(context->env, nullptr, callback, 1, &retArg, &ret);
  26.             napi_delete_reference(context->env, context->callbackRef);
  27.             if (work != nullptr) {
  28.                 delete work;
  29.             }
  30.             delete context;
  31.         }
  32.     );
  33. }
复制代码
  1. //        D
  2. static napi_value Demo(napi_env env, napi_callback_info info)
  3. {
  4.     size_t argc = 1;
  5.     napi_value args[1] = {nullptr};
  6.     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
  7.     napi_value sizeObj = nullptr;
  8.    
  9.     napi_handle_scope scope = nullptr;
  10.     napi_open_handle_scope(env, &scope);
  11.     napi_call_function(env, nullptr, args[0], 0, nullptr, &sizeObj);
  12.     napi_close_handle_scope(env, scope);
  13.    
  14.     int64_t width = 0;
  15.     napi_value result = nullptr;
  16.     napi_get_element(env, sizeObj, 0, &result);
  17.     napi_get_value_int64(env, result, &width);
  18.     return result;
  19. }
复制代码
A、A
​ B、B
C、C
​ D、D

6、下面关于混淆的描述精确的是
​ A、代码混淆已经被集成了到SDK中,可以在DevEco Studio中方便地使用。
​ B、针对工程源码的混淆可以低落工程被破解攻击的风险,紧缩函数名、类名和属性名,减小应用的大小。
​ C、API10及以上版本的Stage模型、编译模式为release时,默认开启代码混淆功能;默认的混淆功能仅会混淆函数参数和局部变量的名称。
​ D、混淆支持ArkTS/TS/JS文件的混淆
代码混淆-ArkTS(方舟编程语言)-应用框架 | 华为开辟者联盟 (huawei.com)
代码混淆-加固构建-编译构建-DevEco Studio | 华为开辟者联盟 (huawei.com)

7、下面关于方舟字节码指令含义说明精确的是(不确定,把全部选项列出)
​ A、假设寄存器v0存放了对象A,累加器(acc)存放了对象B,那么实行指令"Ida v0"后,v0存放对象A,acc存放对象A
B、 假设寄存器v0存放了对象A,累加器(acc)存放了对象B,那么实行指令"Ida v0"后,v0存放对象B,acc存放对象B
C、假设寄存器v0存放了对象A,寄存器v1存放了对象B,那么实行指令"mov v0,v1"后,v0存放对象A,v1存放对象A
​ D、假设寄存器v0存放了对象A,寄存器v1存放了对象B,那么实行指令"mov v0,v1"后,v0存放对象B,v1存放对象B

8、下面关于ArkTS中import用法,精确的是
​ A、import { export1 as alias1 } from "ets file name";
​ B、import defaultExport from "ets file name"
​ C、import * as name from "ets file name"
​ D、import { export1 } from "ets file name";

9、以下关于ArkTS线程实例间传输实现方式描述精确的是(不确定,把全部选项列出)
  1. import { taskpool, worker } from '@kit.ArkTS';
  2. @Sendable
  3. class A {}
  4. let a: A = new A();
  5. @Concurrent
  6. function foo(a: A) {}
  7. let task: taskpool.Task = new taskpool.Task(foo, a)
  8. let w = new worker.ThreadWorker("entry/ets/workers/Worker.ets")
  9. taskpool.execute(task).then(() => {});
  10. w.postMessageWithSharedSendable(a);
  11. task.setCloneList([a]);
  12. taskpool.execute(task).then(() => {});
  13. w.postMessage(a);
复制代码
​ A、task.setCloneList([a]); taskpool.execute(task).then() => {});,TaskPool 共享传输实现方式
​ B、taskpool.execute(task).then(() => {});,TaskPool 共享传输实现方式
​ C、w.postMessage(a);,Worker 共享传输实现方式
​ D、w.postMessageWithSharedSendable(a);,Worker 共享传输实现方式

10、以下代码片断哪几个函数违反了ArkTS语法规范。
  1. function foo1(value1?: number, value2: number) {
  2.    
  3.         if(value1 == undefined){
  4.         
  5.                 return value2;
  6.         
  7.         }
  8.    
  9.                 return value1 + value2;
  10.    
  11. }
  12. function foo2(value1: number, value2?: number) {
  13.    
  14.         if (value2 == undefined) {
  15.         
  16.                 return value1;
  17.         
  18.         }
  19.    
  20.         return value1 + value2;
  21.    
  22. }
  23. function foo3(value: number, ...arrary: number[]) {
  24.    
  25.         return value;
  26.    
  27. }
  28. function foo4( ...arrary: number[], value: number) {
  29.    
  30.         return value;
  31.    
  32. }
复制代码
​ A、foo1
​ B、foo2
​ C、foo3
​ D、foo4

11、在ArkTS中,以下哪些属性的声明是精确的。
  1. class C {
  2.   value1: number = 0;
  3.   value2?: number = null;
  4.   value3: number | undefined = undefined;
  5.   value4?: number;
  6.   
  7. }
复制代码
​ A、value1
​ B、value2
​ C、value3
​ D、value4

12、如下ABC 3处手势,偶然机实行的是哪几处?(不确定,把全部选项列出)
  1. @Entry
  2. @Component
  3. struct ListTest {
  4.   scroller: Scroller = new Scroller()
  5.   scroller2: Scroller = new Scroller()
  6.   scroller3: Scroller = new Scroller()
  7.   private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  8.   private childRecognizer: GestureRecognizer = new GestureRecognizer()
  9.   private currentRecognizer: GestureRecognizer = new GestureRecognizer()
  10.   private lastOffset: number = 0
  11.   build() {
  12.     Stack({ alignContent: Alignment.TopStart }) {
  13.       Scroll(this.scroller) {
  14.         Column() {
  15.           Text("Scroll Area")
  16.             .width('90%')
  17.             .height(150)
  18.             .backgroundColor(0xFFFFFF)
  19.             .borderRadius(15)
  20.             .fontSize(16)
  21.             .textAlign(TextAlign.Center)
  22.             .margin({ top: 10 })
  23.           List({ space: 20, initialIndex: 0 }) {
  24.             ForEach(this.arr, (item: number) => {
  25.               ListItem() {
  26.                 Text('' + item)
  27.                   .width('100%')
  28.                   .height(100)
  29.                   .fontSize(16)
  30.                   .backgroundColor(Color.Blue)
  31.                   .textAlign(TextAlign.Center)
  32.                   .borderRadius(10)
  33.               }
  34.             },
  35.               (item: string) => item
  36.             )
  37.           }
  38.           .listDirection(Axis.Vertical) // 排列方向
  39.           .scrollBar(BarState.Off)
  40.           .friction(0.6)
  41.           .divider({
  42.             strokeWidth: 2,
  43.             color: 0xFFFFF,
  44.             startMargin: 20,
  45.             endMargin: 20
  46.           }) //每行之间的分界线
  47.           .edgeEffect(EdgeEffect.None) // 边缘效果设置为Spring
  48.           .height(1000)
  49.           .width('90%')
  50.           .id("inner")
  51.         }.width('100%')
  52.       }
  53.       .id("outer")
  54.       .height(600)
  55.       .scrollable(ScrollDirection.Vertical) // 滚动方向纵向
  56.       .scrollBar(BarState.On) // 滚动条常驻显示
  57.       .scrollBarColor(Color.Gray) // 滚动条颜色
  58.       .scrollBarWidth(10) // 滚动条宽度
  59.       .edgeEffect(EdgeEffect.None)
  60.       .onScroll((xOffset: number, yOffset: number) => {
  61.         console.info(xOffset + ' ' + yOffset)
  62.       })
  63.       .onScrollEdge((side: Edge) => {
  64.         console.info('To the edge')
  65.       })
  66.       .onScrollStop(() => {
  67.         console.info('Scroll Stop')
  68.       })
  69.       //  A
  70.       /*.gesture(
  71.         TapGesture({ count: 2 })
  72.           .onAction((event: GestureEvent) => {
  73.             if (event) {
  74.               this.value = JSON.stringify(event.fingerList[0])
  75.             }
  76.           })
  77.       )*/
  78.       //  B
  79.       /*.gesture(
  80.         PanGesture({PanDirection.Vertical})
  81.           .onActionUpdate((event: GestureEvent)=>{
  82.             console.log("zcb onActionUpdate event offsetY " + event.offsetY + "this.lastOffset " + this.lastOffset)
  83.           })
  84.       )*/
  85.       //  C
  86.       /*.parallelGesture(
  87.         PanGesture({PanDirection.Vertical})
  88.           .onActionUpdate((event: GestureEvent)=>{
  89.             console.log("zcb onActionUpdate event offsetY " + event.offsetY + "this.lastOffset " + this.lastOffset)
  90.           })
  91.       )*/
  92.     }.width('100%').height('100%').backgroundColor(0xDCDCDC)
  93.   }
  94. }
复制代码
A、NA
​ B、A
C、B
​ D、C

13、以下哪些实现方式可实现文本字号20的效果
  1. // A
  2. @Entry
  3. @Component
  4. struct Index {
  5.   build() {
  6.     Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceBetween }) {
  7.       Text('This is the text with the height adaptive policy set')
  8.         .width('80%')
  9.         .height(90)
  10.         .minFontSize(20)
  11.     }.width('100%').height(250).padding({ left: 35, right: 35, top: 35 })
  12.   }
  13. }
复制代码
  1. // B
  2. @Entry
  3. @Component
  4. struct SpanExample {
  5.   build() {
  6.     Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceBetween }) {
  7.       Text() {
  8.         Span('span letter spacing')
  9.           .letterSpacing(3)
  10.           .fontSize(20)
  11.       }.fontSize(30)
  12.     }.width('100%').height(250).padding({ left: 35, right: 35, top: 35 })
  13.   }
  14. }
复制代码
  1. // C
  2. @Entry
  3. @Component
  4. struct Index {
  5.   build() {
  6.     Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceBetween }) {
  7.       //文本水平方向对齐方式设置
  8.       //单行文本
  9.       Text('TextAlign set to Center.')
  10.         .textAlign(TextAlign.Center)
  11.         .fontSize(20)
  12.         .border({ width: 1 })
  13.         .padding(10)
  14.         .width('100%')
  15.     }.height(600).width(350).padding({ left: 35, right: 35, top: 35 })
  16.   }
  17. }
复制代码
  1. // D
  2. import { LengthMetrics, LengthUnit } from '@ohos.arkui.node'
  3. @Entry
  4. @Component
  5. struct Index {
  6.   fontStyleAttr: TextStyle = new TextStyle({fontSize:LengthMetrics.vp(20)});
  7.   mutableStyledString: MutableStyledString = new MutableStyledString("hello", [{
  8.     start: 0,
  9.     length: 5,
  10.     styledKey: StyledStringKey.FONT,
  11.     styledValue: this.fontStyleAttr
  12.   }]);
  13.   controller: TextController = new TextController();
  14.   async onPageShow() {
  15.     this.controller.setStyledString(this.mutableStyledString)
  16.   }
  17.   build() {
  18.     Column() {
  19.       //显示属性字符串
  20.       Text(undefined, { controller: this.controller })
  21.     }.width('100%')
  22.   }
  23. }
复制代码
​ A、A
​ B、B
​ C、C
​ D、D

14、依次点击A、B、C、D四个按钮,其中不会触发UI刷新的是:
  1. @Entry
  2. @Component
  3. struct Index {
  4.   @State count: number = 0;
  5.   @State @Watch('onValueChange') value: number = 50;
  6.   onValueChange() {
  7.     this.count = this.value;
  8.   }
  9.   build() {
  10.     Column() {
  11.       Text(`${this.count}`)
  12.       Button("A")
  13.         .onClick(() => {
  14.           this.count = 0;
  15.         })
  16.       Button("B")
  17.         .onClick(() => {
  18.           for (let i = 0; i < 1000; i++) {
  19.             this.count = i;
  20.           }
  21.           for (let i = 1000; i > 0; i--){
  22.             this.count = i;
  23.           }
  24.           this.count--;
  25.         })
  26.       Button("C")
  27.         .onClick(() => {
  28.           this.value = 100;
  29.         })
  30.       Button("D" )
  31.         .onClick(() => {
  32.           setInterval(()=>{
  33.             this.count++;
  34.           }, 1000)
  35.         })
  36.     }
  37.   }
  38. }
复制代码
​ A、A
​ B、B
​ C、C
​ D、D

15、如何实现雷同下图布局

  1. //        A
  2. @Entry
  3. @Component
  4. struct Demo {
  5.   //忽略其他辅助代码
  6.   dataSource: ItemDataSource = new ItemDataSource(100)
  7.   itemHeightArray: number[] = []
  8.   colors: number[] = [0xFFC0CB, 0xDA70D6, 0x6B8E23, 0x6A5ACD, 0x00FFFF, 0x00FF7F]
  9.   scroller: Scroller = new Scroller()
  10.   aboutToAppear() {
  11.     this.getItemSizeArray()
  12.   }
  13.   build() {
  14.     Scroll() {
  15.       Column() {
  16.         Grid() {
  17.           GridItem() {
  18.             Text('GoodsTypeList')
  19.           }
  20.           .backgroundColor(this.colors[0])
  21.           GridItem() {
  22.             Text('AppletService')
  23.           }
  24.           .backgroundColor(this.colors[1])
  25.           GridItem() {
  26.             Text('ReloadData')
  27.           }
  28.           .backgroundColor(this.colors[2])
  29.         }
  30.         .rowsGap(10)
  31.         .columnsTemplate('1fr')
  32.         .rowsTemplate('1fr 1fr 1fr')
  33.         .width('100%')
  34.         .height(100)
  35.         .margin({
  36.           top: 10,
  37.           left: 5,
  38.           bottom: 10,
  39.           right: 5
  40.         })
  41.         Grid() {
  42.           LazyForEach(this.datasource, (item: number) => {
  43.             GridItem() {
  44.               //使用可复用自定义组件
  45.               ReusableItem({ item: item })
  46.             }
  47.             .width('100%')
  48.             .height(this.itemHeightArray[item % 100])
  49.             .backgroundColor(this.colors[item % 5])
  50.           }, (item: number) => '' + item + this.itemHeightArray[item % 100])
  51.         }
  52.         .columnsTemplate("1fr 1fr")
  53.         .columnsGap(10)
  54.         .rowsGap(5)
  55.         .width('100%')
  56.         .nestedScroll({
  57.           scrollForward: NestedScrollMode.PARENT_FIRST,
  58.           scrollBackward: NestedScrollMode.SELF_FIRST
  59.         })
  60.       }
  61.     }
  62.     .scrollBar(BarState.Off)
  63.     .edgeEffect(EdgeEffect.None)
  64.   }
  65. }
复制代码
  1. //        B
  2. @Entry
  3. @Component
  4. struct Demo {
  5.   //忽略其他辅助代码
  6.   dataSource: ItemDataSource = new ItemDataSource(100)
  7.   itemHeightArray: number[] = []
  8.   colors: number[] = [0xFFC0CB, 0xDA70D6, 0x6B8E23, 0x6A5ACD, 0x00FFFF, 0x00FF7F]
  9.   scroller: Scroller = new Scroller()
  10.   @State sections: WaterFlowSections = new WaterFlowSections()
  11.   sectionMargin: Margin = { top: 10, left: 5, bottom: 10, right: 5 }
  12.   oneColumnSection: SectionOptions = {
  13.     itemsCount: 3,
  14.     crossCount: 1,
  15.     rowsGap: 10,
  16.     margin: this.sectionMargin,
  17.     onGetItemMainSizeByIndex: (index: number) => {
  18.       return this.itemHeightArray[index % 100]
  19.     }
  20.   }
  21.   lastSection: SectionOptions = {
  22.     itemsCount: 97,
  23.     crossCount: 2,
  24.     margin: this.sectionMargin,
  25.     onGetItemMainSizeByIndex: (index: number) => {
  26.       return this.itemHeightArray[index % 100]
  27.     }
  28.   }
  29.   aboutToAppear() {
  30.     this.setItemSizeArray()
  31.     //        初始化瀑布流分组信息
  32.     let sectionOptions: SectionOptions[] = []
  33.     sectionOptions.push(this.oneColumnSection)
  34.     sectionOptions.push(this.lastSection)
  35.     this.sections.splice(0, 0, sectionOptions)
  36.   }
  37.   build() {
  38.     WaterFlow({ scroller: this.scroller, sections: this.sections }) {
  39.       LazyForEach(this.dataSource, (item: number) => {
  40.         FlowItem() {
  41.           ReusableFlowItem({ item: item })
  42.         }
  43.         .width('100%')
  44.         .backgroundColor(this.colors[item % 5])
  45.       }, (item: string) => item)
  46.     }
  47.     .columnsGap(10)
  48.     .rowsGap(5)
  49.     .backgroundColor(0xFAEEE0)
  50.     .width('100%')
  51.     .height('100%')
  52.   }
  53. }
复制代码
  1. //        C
  2. @Entry
  3. @Component
  4. struct Demo {
  5.   //忽略其他辅助代码
  6.   dataSource: ItemDataSource = new ItemDataSource(100)
  7.   itemHeightArray: number[] = []
  8.   colors: number[] = [0xFFC0CB, 0xDA70D6, 0x6B8E23, 0x6A5ACD, 0x00FFFF, 0x00FF7F]
  9.   scroller: Scroller = new Scroller()
  10.   aboutToAppear() {
  11.     this.getItemSizeArray()
  12.   }
  13.   build() {
  14.     Column() {
  15.       List({ scroller: this.scroller, space: 10 }) {
  16.         ListItem(){
  17.           Grid() {
  18.             GridItem() {
  19.               Text('GoodsTypeList')
  20.             }.backgroundColor(this.colors[0])
  21.             GridItem() {
  22.               Text('AppletService')
  23.             }.backgroundColor(this.colors[1])
  24.             GridItem() {
  25.               Text('ReloadData')
  26.             }.backgroundColor(this.colors[2])
  27.           }
  28.           .rowsGap(10)
  29.           .columnsTemplate('1fr')
  30.           .rowsTemplate('1fr 1fr 1fr')
  31.           .width('100%')
  32.           .height(100)
  33.         }
  34.         ListItem() {
  35.           WaterFlow(){
  36.             LazyForEach(this.datasource, (item: number, index: number) => {
  37.               FlowItem() {
  38.                 //使用可复用自定义组件
  39.                 ReusableItem({ item: item + index })
  40.               }
  41.               .width('100%')
  42.               .height(this.itemHeightArray[item % 100])
  43.               .backgroundColor(this.colors[item % 5])
  44.             }, (item: number) => '' + item + this.itemHeightArray[item % 100])
  45.           }
  46.           .id('Waterflow')
  47.           .columnsTemplate("1fr 1fr")
  48.           .columnsGap(10)
  49.           .rowsGap(5)
  50.           .width('100%')
  51.           .height('100%')
  52.           .nestedScroll({
  53.             scrollForward: NestedScrollMode.PARENT_FIRST,
  54.             scrollBackward: NestedScrollMode.SELF_FIRST
  55.           })
  56.         }
  57.       }
  58.       .scrollBar(BarState.Off)
  59.       .edgeEffect(EdgeEffect.None)
  60.     }
  61.     .width('100%')
  62.     .padding({ left: 10, right: 10 })
  63.   }
  64. }
复制代码
​ A、A === Grid
​ B、B === WaterFlow
​ C、C === List

16、Code Linter针对ArkTS/TS代码进行最佳实践/编程规范方面的查抄,最佳实践/编程规范方面的查抄规则可以配置,针对codelinter的配 置项一下哪些说法是精确的
​ A、rules:可以基于ruleSet配置的规则集,新增额外规则项,但是无法修改ruleSet中规则默认配置
​ B、files:配置待查抄的文件名单,如未指定目次,规则实用于全部文件,比方: [“**/*.ets”,“**/*.js”,“**/*.ts”]。
​ C、ignore:配置无需查抄的文件目次,其指定的目次或文件需使用相对路径格式,相对于code-linter.json5地点工程根目次,比方:build/**/*。
​ D、ruleSet:配置查抄使用的规则集,规则集支持一次导入多条规则。
代码Code Linter查抄-代码查抄-代码编辑-DevEco Studio | 华为开辟者联盟 (huawei.com)

17、一个应用通常会包含多种功能,将不同的功能特性按模块来分别和管理是一种精良的计划方式。在开辟过程中,我们可以将每个功能模块作为一个独立的Module进行开辟,下面关于Module的说法精确的是
​ A、Library类型的Module,用于实现代码和资源的共享,有两种类型,分别为Static Library和Shared Library两种类型。
​ B、entry类型的Module,是应用的主模块,一个应用只能包含唯一一个entry类型的HAP。
​ C、Ability类型的Module,用于实现应用的功能和特性,有两种类型,分别为entry和feature。
​ D、feature类型的Module,应用的动态特性模块,一个应用中可以包含一个或多个feature类型的模块,也可以不包
应用程序包概述-应用程序包基础知识-开辟基础知识-基础入门 | 华为开辟者联盟 (huawei.com)

18、在大型软件工程中,一般会伴随着多团队开辟,各团队开辟本身的业务模块,最后再由集成交付团队集成到一起,下面哪些是大型应用模块化开辟最佳实践
​ A、避免用户首次下载应用耗时过长,及过多占用用户空间,不常勤奋能做成按需加载。
​ B、若多个模块依靠了不同版本的HAR,使用OHPM的overrides机制配置指定使用哪个版本的HAR,以淘汰包大小。
​ C、使用路由表进行模块间解耦。
​ D、一次上架多端部署。

19、通过如下openLink的接口启动,如下哪些配置的UIAbility不可能被拉起(不确定,把全部选项列出)
  1. import { hilog } from '@kit.PerformanceAnalysisKit';
  2. import { UIAbility, common, OpenLinkOptions } from '@kit.AbilityKit';
  3. import { BusinessError } from '@kit.BasicServicesKit';
  4. export default class MyAbility extends UIAbility {
  5.   onForeground() {
  6.     let link: string = "https://www.example.com"
  7.     let openLinkOptions: OpenLinkOptions = {
  8.       applinkingOnly: true,
  9.       parameters: {demo_key: "demo_value"}
  10.     };
  11.     try {
  12.       this.context.openLink(
  13.         link,
  14.         openLinkOptions,
  15.         (err, result) => {
  16.           hilog.error(DOMAIN, TAG, 'openLink callback error.code:' + JSON.stringify(err));
  17.         }
  18.       ).then(()=>{
  19.         hilog.info(DOMAIN, TAG, 'open link success.');
  20.       }).catch((err: BusinessError)=>{
  21.         hilog.error(DOMAIN, TAG, 'open link failed, errCode ' + JSON.stringify(err.code));
  22.       })
  23.     }
  24.     catch (e) {
  25.       hilog.error(DOMAIN, TAG, 'exception occured, errCode ' + JSON.stringify(e.code));
  26.     }
  27.   }
  28. }
复制代码
  1. // A
  2. {
  3.         "name": "TargetAbility",
  4.         "skills": [
  5.                 {
  6.             "actions": [
  7.                     "ohos.want.action.vieData",
  8.             ],
  9.             "entities": [
  10.                 "entity.system.browsable",
  11.             ],
  12.             "uris": [
  13.                 {
  14.                     "scheme": "http",
  15.                     "host": "www.test.com",
  16.                     "port": "8080",
  17.                     "path": "path"
  18.                 }                       
  19.             ]
  20.             }
  21.         ]
  22. }
复制代码
  1. //        B
  2. {
  3.         "name": "TargetAbility",
  4.         "skills": [
  5.                 {
  6.             "actions": [
  7.                     "ohos.want.action.viewData",
  8.             ],
  9.             "entities": [
  10.                 "entity.system.browsable",
  11.             ],
  12.             "uris": [
  13.                 {
  14.                     "scheme": "https",
  15.                     "host": "www.test.com",
  16.                     "port": "8080",
  17.                     "path": "path",
  18.                     "autoVerify": ture
  19.                 }                       
  20.             ]
  21.             }
  22.         ]
  23. }
复制代码
  1. //        C
  2. {
  3.         "name": "TargetAbility",
  4.         "skills": [
  5.                 {
  6.             "actions": [
  7.                     "ohos.want.action.sendData",
  8.             ],
  9.             "entities": [
  10.                 "entity.system.browsable",
  11.             ],
  12.             "uris": [
  13.                 {
  14.                     "scheme": "http",
  15.                     "host": "www.test.com",
  16.                     "port": "8080",
  17.                     "path": "path",
  18.                     "autoVerify": ture
  19.                 }                       
  20.             ]
  21.             }
  22.         ]
  23. }
复制代码
  1. //        D
  2. {
  3.         "name": "TargetAbility",
  4.         "skills": [
  5.                 {
  6.             "actions": [
  7.                     "ohos.want.action.SendData",
  8.             ],
  9.             "entities": [
  10.                 "entity.system.browsable",
  11.             ],
  12.             "uris": [
  13.                 {
  14.                     "scheme": "https",
  15.                     "host": "www.test.com",
  16.                     "port": "8080",
  17.                     "path": "path",
  18.                     "autoVerify": ture
  19.                 }                       
  20.             ]
  21.             }
  22.         ]
  23. }
复制代码
​ A、A
B、B
​ C、C
​ D、D

20、某个应用的启动框架配置文件具体信息如下,以下说法精确的是:
  1. {
  2.    
  3.     "startupTasks": [
  4.         
  5.         {
  6.             "name": "StartupTask_001",
  7.             "srcEntry": "./ets/startup/StartupTask_001.ets",
  8.             "dependencies": [
  9.                 "StartupTask_002",
  10.                 "StartupTask_003"
  11.             ],
  12.             "runOnThread": "taskpool",
  13.             "waitOnMainThread": false
  14.         },
  15.    
  16.         {
  17.             "name": "StartupTask_002",
  18.             "srcEntry": "./ets/startup/StartupTask_002.ets",
  19.             "dependencies": [
  20.                 "StartupTask_004"
  21.             ],
  22.             "runOnThread": "taskpool",
  23.             "waitOnMainThread": false
  24.         },
  25.         {
  26.             "name": "StartupTask_003",
  27.             "srcEntry": "./ets/startup/StartupTask_003.ets",
  28.             "runOnThread": "taskpool",
  29.             "waitOnMainThread": false
  30.         },
  31.         {
  32.             "name": "StartupTask_004",
  33.             "srcEntry": "./ets/startup/StartupTask_004.ets",
  34.             "runOnThread": "taskpool",
  35.             "waitOnMainThread": false
  36.         },
  37.   
  38.         {
  39.             "name": "StartupTask_005",
  40.             "srcEntry": "./ets/startup/StartupTask_005.ets",
  41.             "runOnThread": "mainThread",
  42.             "waitOnMainThread": true
  43.         },
  44.         {
  45.             "name": "StartupTask_006",
  46.             "srcEntry": "./ets/startup/StartupTask_006.ets",
  47.             "runOnThread": "mainThread",
  48.             "waitOnMainThread": false,
  49.             ”excludeFromAutoStart": true
  50.         }
  51.         ],
  52.         
  53.     "configEntry": "./ets/startup/StartupConfig.ets"
  54.    
  55. }
复制代码
​ A、StartupTask_005会在主线程实行
​ B、StartupTask_006会在AbilityStage的onCreate前初始化完成
​ C、StartupTask_001会在StartupTask_004之后实行;
​ D、StartupTask_003会在StartupTask_004之后实行
应用启动框架AppStartup-Stage模型应用组件-Stage模型开辟指导-Ability Kit(程序框架服务)-应用框架 | 华为开辟者联盟 (huawei.com)


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

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

石小疯

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表