Harmony_认证

刚拿到的《HarmonyOS应用开发者高级认证》,全网整理的题目,将近300题,100%通过

鸿蒙应用开发者认证考试(答案)

#HarmonyOS 高级认证# 干货总结

基础知识

配置

app.json5主要包含以下内容:

    • 应用的全局配置信息,包含应用的包名、开发厂商、版本号等基本信息。

    • 特定设备类型的配置信息。

module.json5主要包含以下内容:

    • Module的基本配置信息,例如Module名称、类型、描述、支持的设备类型等基本信息。

    • 应用组件信息,包含UIAbility组件和ExtensionAbility组件的描述信息。

    • 应用运行过程中所需的权限信息。

app.json5

{
  "app": {
    "bundleName": "com.application.myapplication",
    "vendor": "example",
    "versionCode": 1000000,
    "versionName": "1.0.0",
    "icon": "$media:app_icon",
    "label": "$string:app_name",
    "description": "$string:description_application",
    "minAPIVersion": 9,
    "targetAPIVersion": 9,
    "apiReleaseType": "Release",
    "debug": false,
    "car": {
      "minAPIVersion": 8,
    }
  },
}

module.json5

{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "tv",
      "tablet"
    ],
    "deliveryWithInstall": true,
    "installationFree": false,
    "pages": "$profile:main_pages",
    "virtualMachine": "ark",
    "metadata": [
      {
        "name": "string",
        "value": "string",
        "resource": "$profile:distributionFilter_config"
      }
    ],
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ts",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:icon",
        "label": "$string:EntryAbility_label",
        "startWindowIcon": "$media:icon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "ohos.want.action.home"
            ]
          }
        ]
      }
    ],
    "requestPermissions": [
      {
        "name": "ohos.abilitydemo.permission.PROVIDER",
        "reason": "$string:reason",
        "usedScene": {
          "abilities": [
            "FormAbility"
          ],
          "when": "inuse"
        }
      }
    ]
  }
}

 

一、Stage模型

UIAbility组件

概述

  UIAbility组件是一种包含UI界面的应用组件,主要用于和用户交互。

  UIAbility组件是系统调度的基本单元,为应用提供绘制界面的窗口

  一个UIAbility组件中可以通过多个页面来实现一个功能模块

  每一个UIAbility组件实例,都对应于一个最近任务列表中的任务。

生命周期

  UIAbility组件是系统调度的基本单元,为应用提供绘制界面的窗口

  UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,如下图所示。 

启动模式

singleton(单实例模式) 默认模式

每次调用startAbility()方法时,如果应用进程中该类型的UIAbility实例已经存在,则复用系统中的UIAbility实例。系统中只存在唯一一个该UIAbility实例,即在最近任务列表中只存在一个该类型的UIAbility实例。

应用的UIAbility实例已创建,该UIAbility配置为单实例模式,再次调用startAbility()方法启动该UIAbility实例,此时只会进入该UIAbility的onNewWant()回调,不会进入其onCreate()和onWindowStageCreate()生命周期回调

在module.json5配置文件中的"launchType"字段配置为"singleton"即可。

{
  "module": {
    // ...
    "abilities": [
      {
        "launchType": "singleton",
        // ...
      }
    ]
  }
}

multiton(多实例模式)

specified(指定实例模式)

基本用法

  应用中的UIAbility在启动过程中,需要指定启动页面

  通过UIAbilityContext可以获取UIAbility的相关配置信息,如包代码路径、Bundle名称、Ability名称和应用程序需要的环境状态等属性信息,以及可以获取操作UIAbility实例的方法(如startAbility()、connectServiceExtensionAbility()、terminateSelf()等)。

UIAbility组件与UI的数据同步

进程模型

公共事件

  每个应用都可以按需订阅公共事件,订阅成功,当公共事件发布时,系统会将其发送给对应的应用。这些公共事件可能来自系统、其他应用和应用自身。

  

  公共事件服务(Common Event Service, CES)为HarmonyOS应用程序提供以下核心能力:

      1. 订阅公共事件:应用程序可以订阅系统或其它应用发出的公共事件。一旦事件被发布,所有订阅了该事件的应用程序都会收到通知,从而可以执行相应的处理逻辑。

      2. 发布公共事件:应用程序能够发布自定义的公共事件,以便其他已订阅该事件的应用程序能够接收到并作出响应。这促进了应用程序间的解耦通信。

      3. 取消订阅公共事件:应用程序可以根据需要取消对某个公共事件的订阅,以避免不再需要的事件处理,从而有效管理资源和避免不必要的操作。

线程模型

主线程:HarmonyOS应用中每个进程都会有一个主线程,主线程有如下职责:

    1. 执行UI绘制;
    2. 管理主线程的ArkTS引擎实例,使多个UIAbility组件能够运行在其之上;
    3. 管理其他线程(例如Worker线程)的ArkTS引擎实例,例如启动和终止其他线程;
    4. 分发交互事件;
    5. 处理应用代码的回调,包括事件处理和生命周期管理;
    6. 接收Worker线程发送的消息;

   worker:

在鸿蒙ArkUI中直接使用@ohos.worker模块的示例可能不准确,原因在于@ohos.worker模块的设计初衷和使用场景主要是针对Java或JS API的原生层开发,它提供了与HarmonyOS Native SDK集成的Worker线程模型,允许开发者在原生层编写高性能的后台任务。而对于基于ArkUI的应用开发,尤其是使用ArkTS(ArkUI的TypeScript实现)时,开发者通常遵循Web开发的模式,利用Web Worker来处理后台任务。

因此,对于大多数ArkUI开发者而言,特别是在使用ArkTS进行应用逻辑开发时,利用Web Worker来实现后台任务处理是更为推荐和实用的方法。

    与主线程相互独立。最多可以创建8个Worker:

 

    线程间通信

      线程间通信目前主要有Emitter和Worker两种方式,

      Emitter主要适用于线程间的事件同步,

      Worker主要用于新开一个线程执行耗时任务:

 

二、工程

1、基于 ArkTS 开发鸿蒙应用时,工程目录结构主要分为 AppScope 和 entry 两部分:

  • AppScope:应用程序相关的内容,包含资源和配置文件两部分。

    • resources:资源文件目录,主要存放全局相关的资源文件,如图片、视频等媒体文件和字符串、颜色、数字、布尔值等基础元素。

    • app.json5:应用程序的全局配置信息。

      • 应用的全局配置信息:如应用的包名、开发厂商、版本号等基本信息。
      • 特定设备类型的配置信息:如应用在不同设备上的显示效果等。
      • 应用组件信息:包含UIAbility组件和ExtensionAbility组件的描述信息。
      • 应用运行过程中所需的权限信息:如访问网络、读取存储等权限。
  • entry:OpenHarmony 工程模块,编译构建生成一个 HAP 包。
    • src > main > ets:用于存放 ArkTS 源码。
    • src > main > ets > entryability:应用/服务的入口。
    • src > main > ets > pages:应用/服务包含的页面。
    • src > main > resources:用于存放应用/服务所用到的资源文件。
    • src > main > module.json5
      一个模块对应一个打包后的hap
      hap包全称是HarmonyOS Ability Package,其中包含了ability、第三方库、资源和配置文件。其具体属性及其描述可以参照下表。对于abilities中每一个ability的属性项,其描述信息如下表2。
      属性名 类型 描述
      name String 模块名称
      version String 模块版本号
      deviceTypes Object 设备类型
      description String 模块描述信息
      author String 模块作者
      dependencies Object 模块依赖项,键是依赖模块名称,值是依赖模块版本要求
      entry Object 模块入口信息,包含入口文件路径和模块类型
      abilities Array 模块能力列表,每个元素是一个ability对象

      ability属性
      属性名 类型 描述
      name String 能力名称
      type String 能力类型,如UIAbilityExtensionAbility
      description String 能力描述信息
      pages Array 能力包含的页面列表,每个元素是一个页面路径
      permissions Array 能力所需的权限列表,每个元素是一个权限名称
    • build-profile.json5:当前的模块信息、编译信息配置项,包括 buildOption、targets 配置等。
    • hvigorfile.ts:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。

2、一些概念

  • 组件(Component):是应用程序的基本单元,它可以是一个页面、一个功能模块或一个服务。组件通常由代码、资源和配置文件组成。
  • ability:系统调用应用的最小单位,Ability 分为两种类型:FA(Feature Ability)和 PA(Particle Ability)。
    • FA(Feature Ability):有 UI 界面,能够实现特定的业务功能。()
    • PA(Particle Ability):无 UI 界面,通常用于提供后台服务或与其他应用程序进行交互。
  • uiability:uiability(属于FA) 是指具有用户界面的 ability,即 FA(Feature Ability)。
  • module:Module 分为“Ability”和“Library”两种类型。
    “Ability”类型的 Module 对应于编译后的 HAP(Harmony Ability Package);
    “Library”类型的 Module 对应于 HAR(Harmony Archive),或者 HSP(Harmony Shared Package)。
    一个 Module 可以包含一个或多个 UIAbility 组件。

三、ArkTS声明式开发范式的基本组成说明

  1. 装饰器:用来装饰类、结构体、方法以及变量,赋予其特殊的含义,例如@Entry表示这是个入口组件。  
    @Component修饰的自定义组件都支持onInitonDestroy等生命周期函数
    部分生命周期回调函数仅对@Entry修饰的自定义组件生效@Entry修饰的自定义组件生效,它们分别是:onPageShowonPageHideonBackPress

  2. 自定义组件:可复用的 UI 单元,可组合其它组件。
  3. UI描述:声明式的方法来描述UI的结构,例如build()方法中的代码块。
  4. 内置组件:ArkTS中默认内置的基本组件和布局组件,开发者可以直接调用,如Column、Text、Divider、Button等。
  5. 属性方法:用于组件属性的配置,统一通过属性方法进行设置,如fontSize()、width()、height()、color() 等。
  6. 事件方法:用于添加组件对事件的响应逻辑,统一通过事件方法进行设置,如跟随在Button后面的onClick()。

  • 显示图形

    lottie使用loadAnimation方法加载动画。(正确)

    通过ohpm安装lottie后,在哪个文件中会生成相关的配置信息?(B)oh-package.json5

    lottie订阅事件的API为?(C)animationItem.addEventListener()

   下列属于lottie提供的动画控制API的是?(A B C D)

     A. lottie.play()    B. lottie.pause()    C. lottie.stop()   D. lottie.goToAndPlay()

 

四、生命周期

  • Ability 的生命周期:Ability 是 HarmonyOS 应用的基本功能单元,可以分为 FA(Feature Ability)和 PA(Particle Ability)两种类型。不同类型的 Ability 可能具有相似的生命周期。以 Page Ability 为例,它的生命周期包括 onStart() 等回调函数,这些回调函数会在特定的时刻被系统调用,用于执行相应的操作,如初始化组件、处理数据等。
  • 组件的生命周期:组件是应用的基本组成部分,它也有自己的生命周期。组件的生命周期可以用于初始化组件状态、实现高级组件行为等。在 React 中,组件的生命周期回调函数会在特定的时刻调用,我们可以在这些回调函数中做特定的工作。

1、自定义组件生命周期函数

自定义组件的生命周期包括以下几个阶段:
  1. aboutToAppear:组件即将出现时回调该接口,具体时机为在创建自定义组件的新实例后,在执行其build()函数之前执行
  2. build:执行组件的构建函数,用于组件的初始化和渲染。
  3. aboutToDisappear:在自定义组件即将析构销毁时执行。
页面生命周期函数是@Entry(修饰的自定义组件则为页面的入口组件)修饰的组件独有的函数,只有被@Entry修饰的组件,才被视为页面,才能调用页面生命周期函数。具体包括:
  1. onPageShow:页面每次显示时触发。
  2. onPageHide:页面每次隐藏时触发一次。
  3. onBackPress:当用户点击返回按钮时触发。

2、在HarmonyOS应用开发中,Ability的生命周期回调函数对于管理组件的创建、运行和销毁过程至关重要。这些回调函数使开发者能够执行初始化、响应用户交互、释放资源等操作。以下是Ability(特别是Page Ability)常见的生命周期回调函数及其简要说明:

  1. onCreate(): 当Ability首次被创建时调用。在这个方法中,开发者通常会执行初始化设置,比如初始化变量、绑定数据、设置监听器等。

  2. onStart(): 当Ability即将对用户可见时调用。在此阶段,可以执行与界面显示相关的初始化操作,比如加载数据、更新UI等。

  3. onResume(): 当Ability已经对用户可见并可以进行交互时调用。这里适合恢复那些需要用户交互才能运行的任务,如重新开始动画或传感器监听。

  4. onPause(): 当Ability即将失去焦点但仍对部分屏幕可见时调用。应该在此处保存临时数据,暂停正在进行的耗时操作或动画。

  5. onStop(): 当Ability完全不可见时调用。应在这里释放不再需要的资源,如关闭数据库连接、停止传感器监听等。

  6. onActive(): 当Ability从前台返回到用户交互状态时调用。可以在此恢复因onPause()而暂停的操作。

  7. onInactive(): 当Ability从前台变为后台但仍部分可见时调用。可以用来保存用户界面状态,准备进入后台。

  8. onDestroy(): 当Ability即将被销毁时调用。这是进行最终清理工作的机会,如释放所有资源、取消注册的监听器等。

另外,对于AbilitySlice,其生命周期回调函数与Page Ability(FA模型中的概念)类似,包括onStart()onStop()onActive()onInactive()onDestroy()等,因为AbilitySlice在某种程度上可以看作是Ability内部的页面管理单位,具有自己的生命周期管理。

理解并恰当使用这些生命周期回调函数,对于构建高效、响应迅速、资源管理良好的HarmonyOS应用至关重要

3、自定义自定义组件的组件化特点强调了灵活性、高效性和易维护性,具体包括但不限于以下几点:

  1. 可组合性:允许开发者将自定义组件与系统组件自由组合,通过这种方式可以构建出复杂的界面结构,提高了界面设计的灵活性。

  2. 可重用性:自定义组件设计为可复用模块,可以在多个场景、页面或应用中作为独立单元使用,减少代码冗余,提升开发效率。

  3. 数据驱动UI更新:遵循数据驱动的原则,组件的状态变化自动反映到UI上,确保用户界面与数据模型同步更新,简化状态管理逻辑。

  4. 高度可复用和封装:根据业务需求进行定制化封装,使得组件不仅在代码层面可复用,而且在功能和逻辑上也能适应不同的应用场景。

  5. 灵活的属性配置:通过属性设置,可以轻松控制组件的外观(如颜色、大小)和行为(如交互反馈),无需修改组件内部代码。

  6. 配置化生命周期:组件的生命周期管理更加灵活和可配置,便于开发者控制组件的初始化、渲染、更新和销毁等过程。

  7. 独立的开发与测试:组件化开发鼓励将应用拆分成独立可测试的单元,便于进行单元测试和集成测试,保障软件质量。

  8. 模块化架构:支持按模块组织代码,每个模块负责一部分功能,有助于团队协作,也方便后期维护和升级。

  9. 跨平台能力:鸿蒙自定义组件设计时考虑到了多终端的适配性,支持一次开发多端部署,提高了开发效率和应用的广泛适用性。

 

四、系统组件的

1、Tabs

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

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

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

  

  页签位置

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

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

2、弹窗

  A. AlertDialog

  B. TextPickerDialog

  C. DatePickerDialog

  D. @CustomDialog

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

  E. TimePickerDialog

 

五、布局

1. Row

alignItems:叉轴上的对齐方式

  交叉轴为垂直方向时,取值为VerticalAlign类型,水平方向取值为HorizontalAlign

  

  

 

justifyContent:主轴上的排列

  

  

六、状态管理

@Prop

  父子单向同步

@Link

  父子单向同步

  不能在@Entry装饰的自定义组件中使用。

  禁止本地初始化

@Provide和@Consume

  摆脱参数传递机制的束缚,实现跨层级传递。

  其中@Provide装饰的变量是在祖先节点中,可以理解为被“提供”给后代的状态变量。@Consume装饰的变量是在后代组件中,  

// 通过相同的变量名绑定
@Provide a: number = 0;
@Consume a: number;

// 通过相同的变量别名绑定
@Provide('a') b: number = 0;
@Consume('a') c: number;

  

七、路由

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

2、每一个自定义组件都有自己的生命周期 true

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

  • Standard:标准实例模式,也是默认情况下的实例模式。每次调用该方法都会新建一个目标页,并压入栈顶。

  • Single:单实例模式。即如果目标页的url在页面栈中已经存在同url页面,则离栈顶最近的同url页面会被移动到栈顶,并重新加载;如果目标页的url在页面栈中不存在同url页面,则按照标准模式跳转。 

动画类型

特点

显式动画(animationTo)

闭包内的变化均会触发动画,包括由数据变化引起的组件的增删、组件属性的变化等,可以做较为复杂的动画。

属性动画(animation)

动画设置简单,属性变化时自动触发动画;基础组件和容器组件均可使用

1、属性动画

属性动画=属性+animation(属性作用域)

这个属性就是目前支持的width、height、position、opacity、backgroundColor、scale、rotate、translate等

属性名称 属性类型 默认值 描述
duration number 1000 动画时长,单位为毫秒,默认时长为1000毫秒。
tempo number 1.0 动画的播放速度,值越大动画播放越快,值越小播放越慢,为0时无动画效果。
curve Curve Curve.Linear 动画变化曲线,默认曲线为线性。
delay number 0 延时播放时间,单位为毫秒,默认不延时播放。
iterations number 1 播放次数,默认一次,设置为-1时表示无限次播放。
playMode PlayMode PlayMode.Normal 设置动画播放模式,默认播放完成后重头开始播放。
onFinish function - 动画播放结束时回调该函数。
 
属性动画(产生属性动画的属性须在animation之前声明
@Entry
@Component
struct LayoutChange2 {
  @State myWidth: number = 100;
  @State myHeight: number = 50;
  @State flag: boolean = false;
  @State myColor: Color = Color.Blue;

  build() {
    Column({ space: 10 }) {
      Button("text")
        .type(ButtonType.Normal)
        .width(this.myWidth)
        .height(this.myHeight)
        // animation只对其上面的type、width、height属性生效,时长为1000ms,曲线为Ease
        .animation({ duration: 1000, curve: Curve.Ease })
        // animation对下面的backgroundColor、margin属性不生效
        .backgroundColor(this.myColor)
        .margin(20)
        

      Button("area: click me")
        .fontSize(12)
        .onClick(() => {
          // 改变属性值,配置了属性动画的属性会进行动画过渡
          if (this.flag) {
            this.myWidth = 100;
            this.myHeight = 50;
            this.myColor = Color.Blue;
          } else {
            this.myWidth = 200;
            this.myHeight = 100;
            this.myColor = Color.Pink;
          }
          this.flag = !this.flag;
        })
    }
  }

九、Web

 

十、Video

回调事件

  A. onStart视频播放时触发该事件,可以在这里获取视频时长。❌
  B. onFinish视频播放结束时触发该事件。
  C. onPrepared视频准备完成时触发该事件。(此处可以获取时长)
  D. onUpdate播放进度变化时触发该事件,单位为s,更新时间间隔为250ms

十一、并发

在鸿蒙OS(HarmonyOS)使用ArkUI进行应用开发时,选择TaskPool还是Worker取决于具体的使用场景和需求:

  • TaskPool 更多地用于执行短期、轻量级的后台任务,特别是那些需要频繁调度、管理的任务。比如数据库查询、短时的IO操作或数据处理。它提供了较为简便的API来实现异步执行,对于提高应用响应性和管理后台任务非常有用。

  • Worker 则更适合执行长时间运行、CPU密集型或需要隔离执行环境的任务,如图像处理、大数据计算等。由于Worker在单独的线程中运行,它可以避免阻塞UI线程,同时通过消息传递机制与主线程通信,保持良好的解耦和扩展性。

十二、网络请求

1、HTTP

步骤

  1. 从@ohos.net.http.d.ts中导入http命名空间。
  2. 调用createHttp()方法,创建一个HttpRequest对象。
  3. 调用该对象的on()方法,订阅http响应头事件,此接口会比request请求先返回。可以根据业务需要订阅此消息。
  4. 调用该对象的request()方法,传入http请求的url地址和可选参数,发起网络请求。
  5. 按照实际业务需要,解析返回结果。
  6. 调用该对象的off()方法,取消订阅http响应头事件。
  7. 当该请求使用完毕时,调用destroy()方法主动销毁。
// 引入包名
import http from '@ohos.net.http';

// 每一个httpRequest对应一个HTTP请求任务,不可复用
let httpRequest = http.createHttp();
// 用于订阅HTTP响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息
// 从API 8开始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback)。 8+
httpRequest.on('headersReceive', (header) => {
    console.info('header: ' + JSON.stringify(header));
});
httpRequest.request(
    // 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定
    "EXAMPLE_URL",
    {
        method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET
        // 开发者根据自身业务需要添加header字段
        header: {
            'Content-Type': 'application/json'
        },
        // 当使用POST请求时此字段用于传递内容
        extraData: {
            "data": "data to send",
        },
        expectDataType: http.HttpDataType.STRING, // 可选,指定返回数据的类型
        usingCache: true, // 可选,默认为true
        priority: 1, // 可选,默认为1
        connectTimeout: 60000, // 可选,默认为60000ms
        readTimeout: 60000, // 可选,默认为60000ms
        usingProtocol: http.HttpProtocol.HTTP1_1, // 可选,协议类型默认值由系统自动指定
    }, (err, data) => {
        if (!err) {
            // data.result为HTTP响应内容,可根据业务需要进行解析
            console.info('Result:' + JSON.stringify(data.result));
            console.info('code:' + JSON.stringify(data.responseCode));
            // data.header为HTTP响应头,可根据业务需要进行解析
            console.info('header:' + JSON.stringify(data.header));
            console.info('cookies:' + JSON.stringify(data.cookies)); // 8+
        } else {
            console.info('error:' + JSON.stringify(err));
            // 取消订阅HTTP响应头事件
            httpRequest.off('headersReceive');
            // 当该请求使用完毕时,调用destroy方法主动销毁
            httpRequest.destroy();
        }
    }
);

2、WebSocket

  • ( )模块提供了全双工通信协议。 【B】
    A.HTTP
    B.WebSocket
    C.Socket
    D.Request

3、Socket

十三、数据管理

1、首选项

用户首选项为应用提供Key-Value键值型的数据处理能力

首选项(Preferences)存储通常不遵循ACID(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability))特性。首选项设计用于轻量级的键值对存储,主要用于保存应用设置和用户偏好等相对简单的数据,它更侧重于易用性和效率,而非事务处理的安全性和复杂数据操作。

 

首选项key的最大长度是80字节

首选项存储的值:数字、字符、布尔以及这三种类型的数组类型

十四、通知

接口说明

接口名

描述

publish(request: NotificationRequest, callback: AsyncCallback<void>): void

发布通知。

cancel(id: number, label: string, callback: AsyncCallback<void>): void

取消指定的通知。

cancelAll(callback: AsyncCallback<void>): void;

取消所有该应用发布的通知。

判断题

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

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

 

十四、后台任务

  • 代理提醒
    应用退到后台或进程终止后,仍然有一些提醒用户的定时类任务,例如购物类应用抢购提醒等,为满足此类功能场景,系统提供了代理提醒(reminderAgentManager)的能力
    • 倒计时类:基于倒计时的提醒功能。

    • 日历类:基于日历的提醒功能。

    • 闹钟类:基于时钟的提醒功能。

  •  
    1. 通知的基本概念:在移动操作系统中,通知是一种向用户传递即时消息和提醒的机制,允许应用在不直接打开界面的情况下与用户交互。

    2. 通知通道(Channel)的管理:鸿蒙系统中,为了更好地分类和管理通知,引入了通知通道的概念。开发者需要为不同的通知类型创建不同的通道,每个通道可以设置不同的通知显示方式、重要性等级等属性。

    3. 通知的显示类型:不同的通知类型可能有不同的展示形式,如横幅通知、图标徽章、锁屏通知等。这些展示形式有助于在不同场景下吸引用户的注意。

    4. SlotType的分类

      • SlotType.SOCIAL_COMMUNICATION:主要用于社交沟通类应用的通知,如即时消息、电话、邮件等,这类通知通常需要即时且显眼的提示,因此常伴有横幅通知的显示。
        可以显示横幅通知
      • SlotType.SERVICE_INFORMATION:适用于服务类信息通知,比如系统更新、后台下载完成等,可能更多采用图标徽章或状态栏通知。
      • SlotType.CONTENT_INFORMATION:内容信息通知,适用于新闻、天气更新等非紧急但信息丰富的通知。
      • SlotType.OTHER_TYPES:其他类型的自定义通知,当上述分类都不适用时选用。

因此,您所提的问题属于“鸿蒙OS通知渠道配置与通知样式设定”的知识点,帮助开发者根据应用需求合理配置通知的显示方式和用户交互模式。


十五、编译构建

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

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

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

5.发布后的应用可以在哪里获取?(A)华为应用市场

十六、端云一体化

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

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

开发者在DevEco Studio中,可以通过什么形式进行HarmonyOS云开发?(B)工程模板

HarmonyOS云开发当前支持最低API版本是多少?(D)API 9

HarmonyOS云开发工程结构分哪些部分?(A B C)

  A. 端开发工程(Application) B. 云开发工程(CloudProgram) C. 端侧公共库(External Libraries)

HarmonyOS云开发工程创建后,会自动开通哪些服务?(A B C D)

  A. 云函数 B. 云数据库 C. 云存储 D. 认证服务

云函数打包完成后,需要到AppGallery Connect创建对应函数的触发器才可以在端侧中调用(错)  不需要

  在很多情况下,云函数可以直接通过客户端应用、后端服务或者其他云服务的直接调用来执行,而无需事先在AppGallery Connect或其他平台配置触发器。

十七、开发元服务

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

元服务包名必须以哪个字段结尾?   A. .hmservice

元服务包由一个或多个HAP包组成,每个HAP包不得超过() ,以提供秒开体验。    B.10MB

十八、工具

端云一体化开发

端云一体化中的云函数支持哪些操作 ABCD

A. 编写函数    B. 测试函数    C. 打包函数    D. 部署函数

 

端云一体化开发工程目录分为三个子工程:端开发工程(Application)、云开发工程(CloudProgram)、端侧公共库(External Libraries)

 

开发者在DevEco Studio中,可以通过什么方式实现端云一体化?【B】
A.IDE插件    B.工程模板    C.命令行工具    D.可视化工具

十九、其它


一、端云一体化

云函数调用
云函数打包完成后,需要到APPGallery Connect创建对应函数的触发器才可以在端侧中调用。
解析:【错】打包之前创建对应函数的触发器,如下图所示。
​​​​​​​​

端云一体化开发
基于端云一体化开发,开发者需要精通前端,后端不同的开发语言。解析【错】都可以用TypeScript

开发者在DevEco Studio中,可以通过什么方式实现端云一体化?【B】
A.IDE插件
B.工程模板
C.命令行工具
D.可视化工具

端云一体化当前支持最低的鸿蒙API版本是 C
A.6
B.7
C.8
D.9

端云一体化工程目录结构分为哪些部分。 【ABC】
A.端开发工程Application
B.云开发工程CloudProgram
C.端侧公共库Extrernal Libraries
D.公共资源库 Resource

端云一体化已经集成以下哪些服务SDK? 【ABC】 待定应该是ABCD?
A.云函数
B.云数据库
C.云存储
D.云托管

HarmonyOS云开发工程创建后,会自动开通哪些服务?ABCD
A. 云函数
B. 云数据库
C. 云存储
D. 认证服务

端云一体化的中云函数支持哪些操作? 【ABCD】
A.编写函数
B.测试函数
C.打包函数
D.部署函数

 

 

云端资源
只要使用端云一体化的云端资源就需要支付费用。 解析:【错】有免费档套餐
​​

二、组件开发

自定义组件的aboutToAppear()在什么时机执行。 【B】
A. build函数之后
B. build函数之前
C. 页面进入之时

 

自定义组件的组件化特点有哪些? 【ABCD】
A.可组合
B.可重用
C.配置化生命周期
D.数据驱动更新

 

下面哪些组件层次结构是正确的。 【ABE】
A.Text>Span
B.Button>Column>Image
C.Button>Image>Text
D.Image>Text>Span
E.Column>Row>Button

三、XXXXX

worker 线程
Worker线程最大同时激活数。 【C】
A.6
B.7
C.8
D.9


通信
( )模块提供了全双工通信协议。 【B】
A.HTTP
B.WebSocket
C.Socket
D.Request


四、安全

 

密钥管理
HUKS中文全称是什么。 【B】
A.加解密系统
B.通用秘钥库系统
C.密码管理系统
D.访问控制系统

 

五、打包发布


OpenHarmony生态
HarmonyOS应用可以兼容OpenHarmony生态。 【对】

发布开放式测试版本后,怎么追加测试用户?【B】
A.直接在当前版本追加 或 直接在当前版本追加新的测试用户,然后手动发送邀请
B.需要重新发布新的测试版本追加用户

 

发布开放式测试测试版本后,还需要人工审核吗?【B】
A.需要
B.不需要

 

开放式测试版本发布后,受邀测试用户如何体验?选B 
A.进入华为应用市场,搜索待体验的元服务。
B.进入服务中心,打开“开发者测试”开关,在最下方的“服务测试”找到待体验的元服务。
C.进入生态市场,搜索待体验的元服务。

 

鸿蒙应用/原服务上架过程上传软件包常见的问题有哪些? 【ABCD】
A.软件包中的发布Profies文件和当前上传软件包的应用不匹配
B.软件包中的发布证书与发布Profies文件中的发布证书不匹配
C.软件包未签名导致提示非法软件包
D.软件包中使用证书已经失效或者过期

六、跨端

跨境迁移和协同是哪个鸿蒙特征的能力? 【C】
A.一次性开发多端部署
B.可分可合
C.统一生态
D.自由流转

鸿蒙特征包含哪些场景化能力? 【ABC】
​ A. 一次开发,多端部署
​ B. 可分可合,自由流转
​ C. 统一生态,原生智能

跨端迁移和协同是哪个鸿蒙特征的能力。 【D】
A.一次开发多端部
B.可分可合
C.统一生态
D.自由流转

一次开发多端部署的三个层次有哪些? 【ABC】
A.界面级一多
B.功能级一多
C.工程级一多
D.系统级一多
这三个层次意味着开发者可以使用同一套代码基础,针对不同的设备和界面尺寸、功能需求以及整体工程项目,进行高效适配和部署,实现应用跨设备的无缝运行。

 

应用包名不能包含一些保留字段,以下那个字段符合规范?【A】
A.test         符合规范
B.harmony  保留字段
C.system    保留字段
D.ohos        保留字段

 

七、元服务

元服务包名必须以哪个字段结尾? 【A】
A.hmsservice
B.任意字段

元服务包每个HAP包不得超过(),以提供秒开体验。 【A】
A.2MB
B.2GB
C.无限制

----

添加用户信息时,如果帐号使用手机号码,以下哪种输入格式正确?( 86-189****1234)

 

 

 

posted @ 2024-04-27 01:49  素染年华  阅读(149)  评论(0编辑  收藏  举报