鸿蒙开发基础认证 课后习题汇总

目录

【习题】运行Hello World工程 

判断题

单选题

多选题

该小节补充知识:

【习题】ArkTS基础知识 

判断题

单选题

多选题

该小节补充知识:

基本概念

状态管理

页面级变量的状态管理

应用级变量的状态管理:


【习题】运行Hello World工程 

及格分85/ 满分100

判断题

1. DevEco Studio是开发HarmonyOS应用的一站式集成开发环境。

正确(True)  错误(False)

回答正确

2. main_pages.json存放页面page路径配置信息。

正确(True)  错误(False)

回答正确

单选题

1. 在stage模型中,下列配置文件属于AppScope文件夹的是?

A. main_pages.json  (存储在:XX/entry/src/main/resources/base/profile/main_pages.json)

B. module.json5  (是模块级的配置文件,存储在XX/entry/src/main/module.json5)

C. app.json5

D. package.json

回答正确

多选题

1. 如何在DevEco Studio中创建新项目?

A. 在计算机上创建一个新文件,并将其命名为“new harmonyOS项目”

B. 如果已打开项目,从DevEco Studio菜单选择'file>new>Create Project'

C. 如果第一次打开DevEco Studio,在欢迎页点击“Create new Project”

回答正确

2. module.json5配置文件中,包含了以下哪些信息?

A. ability的相关配置信息

B. 模块名

C. 应用的版本号

D. 模块类型

回答正确

该小节补充知识:

module.json5文件格式大致如下。(应用的版本号信息在app.json5文件当中

{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "phone"
    ],
    "deliveryWithInstall": true,
    "installationFree": false,
    "pages": "$profile:main_pages",
    "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": [
              "action.system.home"
            ]
          }
        ]
      }
    ],
	"requestPermissions": [
      {
        "name": "ohos.permission.INTERNET",
      }
    ]
  }
}

app.json5

{
  "app": {
    "bundleName": "com.example.simplevideo",
    "vendor": "example",
    "versionCode": 1000000,
    "versionName": "1.0.0",
    "icon": "$media:app_icon",
    "label": "$string:app_name"
  }
}

【习题】ArkTS基础知识 

及格分85/ 满分100

判断题

1. 循环渲染ForEach可以从数据源中迭代获取数据,并为每个数组项创建相应的组件。

正确(True)  错误(False)

回答正确

2.  @Link变量不能在组件内部进行初始化。

正确(True)  错误(False)

回答正确

单选题

1. 用哪一种装饰器修饰的struct表示该结构体具有组件化能力?

A. @Component

B. @Entry

C. @Builder

D. @Preview

回答正确

2. 用哪一种装饰器修饰的自定义组件可作为页面入口组件?

A. @Component

B. @Entry

C. @Builder (ArkUI提供的一种更轻量的UI元素复用机制@Builder,@Builder所装饰的函数遵循build()函数语法规则,开发者可以将重复使用的UI元素抽象成一个方法,在build方法里调用。

D. @Preview

回答正确

多选题

1. 下面哪些函数是自定义组件的生命周期函数?(ABCDE)

A. aboutToAppear

B. aboutToDisappear

C. onPageShow

D. onPageHide

E. onBackPress

回答正确

2. 下面哪些装饰器可以用于管理自定义组件中变量的状态?(CD)

A. @Component

B. @Entry

C. @State 修饰的状态数据被修改时会触发组件的build方法进行UI界面更新。装饰内容为基本数据类型,类,数组

D. @Link 父子组件之间的双向数据绑定,父组件的内部状态数据作为数据源,任何一方所做的修改都会反映给另一方。装饰内容为基本数据类型

回答正确

该小节补充知识:

详情参考官网状态管理

基本概念
  • struct:自定义组件可以基于struct实现,不能有继承关系,对于struct的实例化,可以省略new。

  • 装饰器:装饰器给被装饰的对象赋予某一种能力,其不仅可以装饰类或结构体,还可以装饰类的属性。多个装饰器可以叠加到目标元素上,定义在同一行中或者分开多行,推荐分开多行定义。

@Entry
@Component
struct MyComponent {
}
  • build函数:自定义组件必须定义build函数,并且禁止自定义构造函数。build函数满足Builder构造器接口定义,用于定义组件的声明式UI描述。

interface Builder {
build: () => void
}
  • @Component:装饰struct,结构体在装饰后具有基于组件的能力,需要实现build方法来创建UI。

  • @Entry: 装饰struct,组件被装饰后作为页面的入口,页面加载时将被渲染显示。

  • @Preview:装饰struct, 用@Preview装饰的自定义组件可以在DevEco Studio的预览器上进行实时预览,加载页面时,将创建并显示@Preview装饰的自定义组件。

    TIPS:在单个源文件中,最多可以使用10个@Preview装饰自定义组件,更多说明请参考查看ArkTS组件预览效果

  • 链式调用:以 "." 链式调用的方式配置UI组件的属性方法、事件方法等。

状态管理

鸿蒙应用中的状态管理分成页面级别的状态管理应用级别的状态管理

页面级变量的状态管理

装饰器

装饰内容

说明

@State

基本数据类型,类,数组

修饰的状态数据被修改时会触发组件的build方法进行UI界面更新。

@Prop

基本数据类型

修改后的状态数据用于在父组件和子组件之间建立单向数据依赖关系。修改父组件关联数据时,更新当前组件的UI。

@Link

基本数据类型,类,数组

父子组件之间的双向数据绑定,父组件的内部状态数据作为数据源,任何一方所做的修改都会反映给另一方。

@Observed

@Observed应用于类,表示该类中的数据变更被UI页面管理。

@ObjectLink

被@Observed所装饰类的对象

装饰的状态数据被修改时,在父组件或者其他兄弟组件内与它关联的状态数据所在的组件都会更新UI。

@Consume

基本数据类型,类,数组

@Consume装饰的变量在感知到@Provide装饰的变量更新后,会触发当前自定义组件的重新渲染。

@Provide

基本数据类型,类,数组

@Provide作为数据的提供方,可以更新其子孙节点的数据,并触发页面渲染。

应用级变量的状态管理:

AppStorage是整个UI应用程序状态的中心“数据库”,UI框架会针对应用程序创建单例AppStorage对象,并提供相应的装饰器和接口供应用程序使用。

  • @StorageLink:@StorageLink(name)的原理类似于@Consume(name),不同的是,该给定名称的链接对象是从AppStorage中获得的,在UI组件和AppStorage之间建立双向绑定同步数据。
  • @StorageProp:@StorageProp(name)将UI组件属性与AppStorage进行单向同步,AppStorage中值的更改会更新组件中的属性,但UI组件无法更改AppStorage中的属性值。

【习题】应用程序框架 

及格分85/ 满分100

判断题

1. 一个应用只能有一个UIAbility。

正确(True) 错误(False)

回答正确

2. 创建的Empty Ability模板工程,初始会生成一个UIAbility文件。

正确(True) 错误(False)

回答正确

3. 每调用一次router.pushUrl()方法,页面路由栈数量均会加1。

正确(True)  错误(False) (不一定会加1,需要看使用的模式是 单实例 还是 多实例

回答正确

单选题

1. API9及以上,router.pushUrl()方法,默认的跳转页面使用的模式是哪一种?

A. standard

B. Single

C. Specified

回答正确

2. UIAbility启动模式需要在module.json5文件中配置哪个字段?

A. module

B. skills

C. launchType

D. abilities

回答正确

多选题

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

A. Standard

B. Single

C. Specified

回答正确

2. UIAbility的生命周期有哪几个状态?

A. Create

B. WindowStageCreate

C. Foreground

D. Background

E. WindowStageDestroy

F. Destroy

回答正确

3. UIAbility有哪几种的启动模式

A. multiton

B. singleton

C. specified

该小节补充知识:
UIAbility概述

        UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。

router.pushUrl()的mode参数

API9及以上,router.pushUrl()方法新增了mode参数,可以将mode参数配置。router.RouterMode.Single单实例模式和router.RouterMode.Standard多实例模式。

        在单实例模式下:如果目标页面的url在页面栈中已经存在同url页面,离栈顶最近同url页面会被移动到栈顶,移动后的页面为新建页,原来的页面仍然存在栈中,页面栈的元素数量不变;如果目标页面的url在页面栈中不存在同url页面,按多实例模式跳转,页面栈的元素数量会加1。

UIAbility的生命周期

        为了实现多设备形态上的裁剪和多窗口的可扩展性,系统对组件管理和窗口管理进行了解耦。UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,WindowStageCreate和WindowStageDestroy为窗口管理器(WindowStage)在UIAbility中管理UI界面功能的两个生命周期回调,从而实现UIAbility与窗口之间的弱耦合。

Foreground和Background状态,分别在UIAbility切换至前台或者切换至后台时触发。

分别对应于onForeground回调和onBackground回调。

①:onForeground回调,在UIAbility的UI页面可见之前,即UIAbility切换至前台时触发。可以在onForeground回调中申请系统需要的资源,或者重新申请在onBackground中释放的资源。

②:onBackground回调,在UIAbility的UI页面完全不可见之后,即UIAbility切换至后台时候触发。可以在onBackground回调中释放UI页面不可见时无用的资源,或者在此回调中执行较为耗时的操作,例如状态保存等。

UIAbility的启动模式

注意此处和上面的pushUrl的模式不同

对于浏览器或者新闻等应用,用户在打开该应用,并浏览访问相关内容后,回到桌面,再次打开该应用,显示的仍然是用户当前访问的界面。

对于应用的分屏操作,用户希望使用两个不同应用(例如备忘录应用和图库应用)之间进行分屏,也希望能使用同一个应用(例如备忘录应用自身)进行分屏。

对于文档应用,用户从文档应用中打开一个文档内容,回到文档应用,继续打开同一个文档,希望打开的还是同一个文档内容。

基于以上场景的考虑,UIAbility当前支持singleton(单实例模式)、multiton(多实例模式)和specified(指定实例模式)3种启动模式。

【习题】构建漂亮的页面 

及格分85/ 满分100

判断题

1. 在Column容器中的子组件默认是按照从上到下的垂直方向布局的,其主轴的方向是垂直方向,在Row容器中的组件默认是按照从左到右的水平方向布局的,其主轴的方向是水平方向。

正确(True)  错误(False)

回答正确

2. List容器可以沿水平方向排列,也可以沿垂直方向排列。

正确(True)   错误(False)

回答正确

3. 当Tabs组件的参数barPosition为BarPosition.End时,页签位于页面底部。

正确(True)  错误(False) (还有vertical属性来控制具体位置)

回答正确

4. Resource是资源引用类型,用于设置组件属性的值,可以定义组件的颜色、文本大小、组件大小等属性。

正确(True)  错误(False)

回答正确

单选题

1. 使用TextInput完成一个密码输入框,推荐设置type属性为下面哪个值?

A. InputType.Normal

B. InputType.Password

C. InputType.Email

D. InputType.Number

回答正确

2. 使用Image加载网络图片,需要以下那种权限?

A. ohos.permission.USE_BLUETOOTH

B. ohos.permission.INTERNET

C. ohos.permission.REQUIRE_FORM

D. ohos.permission.LOCATION

回答正确

3. 下面哪个组件层次结构是错误的?

A. List>ListItem>Column

B. Column>List>ListItem

C. Grid>Row>GridItem

D. Grid>GridItem

回答正确

多选题

1. Row容器的主轴是水平方向,交叉轴是垂直方向,其参数类型为VerticalAlign (垂直对齐),VerticalAlign 定义了以下几种类型?

A. Top

B. Bottom

C. Start

D. End

E. Center

回答正确 (因为相对于垂直方向来说,起始和结束是指Top、Buttom

2. 下面哪些组件是容器组件?

A. Button

B. Row

C. Column

D. Image

E. TextInput

回答正确

3. 关于Tabs组件页签的位置设置,下面描述正确的是?

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

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

C. 当barPosition为End ,vertical属性为false(默认值)时,页签位于容器底部。

D. 当barPosition为End ,vertical属性为true时,页签位于容器右侧。

回答正确

声明式开发范式目前可供选择的组件如下表所示。

组件类型

  

基础组件

Blank、Button、Checkbox、CheckboxGroup、DataPanel、DatePicker、Divider、Gauge、Image、ImageAnimator、LoadingProgress、Marquee、Navigation、Progress、QRCode、Radio、Rating、RichText、ScrollBar、Search、Select、Slider、Span、Stepper、StepperItem、Text、TextArea、TextClock、TextInput、TextPicker、TextTimer、TimePicker、Toggle、Web、XComponent

容器组件

AlphabetIndexer、Badge、Column、ColumnSplit、Counter、Flex、GridContainer、Grid、GridItem、List、ListItem、Navigator、Panel、Refresh、Row、RowSplit、Scroll、SideBarContainer、Stack、Swiper、Tabs、TabContent

媒体组件

Video

绘制组件

Circle、Ellipse、Line、Polyline、Polygon、Path、Rect、Shape

画布组件

Canvas

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/566841.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

达芬奇调色:色彩理论入门

写在前面 整理一些达芬奇调色的笔记博文内容涉及: 一级调色是什么,以及 调色素材格式 log,raw,rec709 简单认知理解不足小伙伴帮忙指正 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候&#…

全网最全搭建Electron项目的各种方式及错误解决

一、官方文档手动搭建 文档地址:快速入门 | Electron,按照文档步骤操作即可,项目只包含了Electron依赖,仅仅只是一个hello world展示。 二、github上拉取官网的electron-quick-start项目 electron-quick-start跟方式一创建的一…

MySQL数据库运维:运行监控及解决sql执行死锁问题

前言 在现代数据密集型应用程序的开发和部署中,MySQL数据库的运维是至关重要的环节之一。一个良好设计和维护的MySQL数据库系统可以确保数据的准确性、可靠性和高效的访问,从而支持业务的顺利运行。然而,随着业务规模的增长和复杂性增加&…

Spring 5源码学习

文章目录 一. 访问[spring官网], 找到Spring Framework,点击红色标记github仓库,下载对应的分支代码,本人下载5.1.x二. 安装gradle三. 调整spring-framework配置四. 开始编译五.导入idea 一. 访问[spring官网], 找到Spring Framework&#xf…

使用Python和wxPython下载视频封面

介绍: 在在线视频内容的世界中,是领先的平台。拥有数十亿的视频,拥有引人注目的封面图像非常重要,以吸引观众。在本博客文章中,我们将探讨如何使用Python和wxPython模块下载视频封面。我们将提供两个代码示例&#xff…

图像数据做并行规约时,如何确定共享内存和网格的大小

做并行规约时,如何确定共享内存和网格的大小 1、为什么要确定共享内存和网格大小2、共享内存大小定义3、网格大小 注:1、这里记录使用笔记,不对cuda的名词做解释,没有详细数学原理和代码。 2、环境:cuda8.0&#xff0c…

密码学 | Random Oracle 随机预言机

​ 🥑原文:究竟什么才是随机预言机呢? - 玄星的回答 🥑答主指出: 英文维基明明对 随机预言机 给出了两个完全不同的理解,但这两个理解之间的连接词却是 “Stated differently”,即 “换句话说…

STM32通过ESP8266(MQTT)连接新版ONENET(2024/4/23)(保姆级教程)附运行结果

⏩ 大家好哇!我是小光,想要成为系统架构师的嵌入式爱好者。 ⏩在各种嵌入式系统中我们经常会使用上位机去做显示,本文对STM32通过ESP8266连接最新版的ONENET做一个详细教程。 ⏩感谢你的阅读,不对的地方欢迎指正。 STM32通过ESP82…

【图说】VMware Ubuntu22.04 详细安装教程

前言 无论是从事 Linux 开发工作,还是希望电脑运行双系统,VMware 虚拟机都是我们日常工作不可或缺的工具。本章将会重点介绍 VMware 安装流程,以及在 VMware 上如何运行、使用 Ubuntu22.04 系统。 一、VMware 下载安装 1.1 VMware 官网下载…

如何查看西门子触摸屏的镜像版本?

如何查看西门子触摸屏的镜像版本? 当软件组态的设备版本和实际设备镜像之间版本不同时,那么在传输项目时就会出现兼容性冲突的提示。 镜像版本说明: 如何调整镜像版本(升级或降级)? 为了使用新功能以及提高面板的稳定性、可靠性和可用性,建议使用新的镜像版本。 一、 通…

目标检测算法是指什么?

一、目标检测算法是指什么? 目标检测算法是计算机视觉领域的一个重要分支,它旨在识别和定位图像中的目标对象。以下是目标检测算法的相关内容: 目标检测的核心问题:目标检测需要解决的两个核心问题是“目标是什么”和“目标在哪里…

【计算机网络】(三)物理层 - 通信基础

文章目录 【计算机网络】(三)物理层 - 通信基础前言3.1 物理层的基本概念3.2 数据通信的基础知识3.2.1 数据、信号、码元3.2.2 信源、信宿、信道3.2.3 编码、调制3.2.3.1 基带调制(编码)3.2.3.2 带通调制(调制&#xf…

想搭建跨境电商网站?掌握这些源码关键点,助您轻松上线

随着全球化的发展和电子商务的兴盛,跨境电商已成为企业拓展国际市场的主要方式之一。然而,想要搭建一个成功的跨境电商网站并非易事,其中关键之一就是掌握跨境电商网站源码的要点。在本文中,我将为您深入探讨如何选择、优化和维护…

一个java项目中,如何使用sse协议,构造一个chatgpt的流式对话接口

前言 如何注册chatGPT,怎么和它交互,本文就不讲了;因为网上教程一大堆,而且你要使用的话,通常会再包一个算法服务,用来做一些数据训练和过滤处理之类的,业务服务基本不会直接与原生chatGPT交互。…

mysql-connector-java和spring-boot-starter-jdbc和mybatis-spring-boot-start

mysql-connector-java和spring-boot-starter-jdbc和mybatis-spring-boot-start JDBC是什么意思? JDBC是使用java语言操作mysql数据库的规范,java语言必须按照这个规范写才可以操作mysql数据库。 mysql-connector-java 在最开始的时候 程序中是不允许…

省级客运、货运量及周转量数据(1990-2022年)

1、数据介绍 客运量和货运量是衡量交通运输行业发展状况的重要指标,可以反映一个地区或国家的经济发展水平和人民生活水平。而周转量则是反映运输行业效率的指标,即货物或旅客被运输的总距离。 省级客运、货运量及周转量是衡量一个地区交通运输行业发展…

第⑮讲:Ceph集群管理与监控操作指南

文章目录 1.查看集群的状态信息2.动态的查看集群的状态信息3.查看集群的利用率4.查看OSD的资源利用率5.查看OSD的列表6.查看各组件的状态7.查看集群的仲裁信息8.查看/修改集群组件sock的配置参数 1.查看集群的状态信息 通过集群状态信息可以看到集群的健康状态、各个组件的运行…

uniapp app权限说明弹框2024.4.23更新

华为上架被拒绝 用uni-app开发的app,上架华为被拒,问题如下: 您的应用在运行时,未见向用户告知权限申请的目的,向用户索取(电话、相机、存储)等权限,不符合华为应用市场审核标准。…

Bingbong的回文路径

Here 利用回文串,从左往右与从右往左的hash值相同来判断从左往右,例:从右往左,例:由于在树上,考虑建两颗树,一颗根为最高位(up),一棵根为最低位(…

0 transformers入门,HuggingFace!

目录 1 了解 2 文本分类 1 了解 1 依赖安装 !pip install transformers -i https://pypi.tuna.tsinghua.edu.cn/simple some-package 2 了解transformers 能做什么 from transformers.pipelines import SUPPORTED_TASKS SUPPORTED_TASKS.items()2 文本分类 我没外网所以…
最新文章