首页 > 编程语言 >鸿蒙应用开发快速学习指南(初级篇-4 应用程序框架基础)

鸿蒙应用开发快速学习指南(初级篇-4 应用程序框架基础)

时间:2024-09-14 23:21:03浏览次数:14  
标签:学习指南 配置文件 鸿蒙 应用程序 UIAbility 拿下 应用 组件 Stage

应用程序框架基础

第四课 应用程序框架基础

在上一课结束后,补足了声明式UI部分的知识之后,依旧是先看习题。

判断题

  1. 在基于Stage模型开发的应用项目中都存在一个app.json5配置文件、以及一个或多个module.json5配置文件。
  • 正确(True)
  • 错误(False)
    首先问题中提到了Stage模型,什么是Stage模型暂不清楚,带着这个疑问继续看问题,应用中存在一个app.json5文件,应用的英文为application,或者用app简写,前部分应该没有问题,后部分结合第一课提到的设计理念,可能与微服务相似,可以尝试用较为熟悉的多模块带入,例如Spring Cloud多模块其中在maven中的配置也是使用module标签,应该也没有问题,正确!拿下!
  1. 一个应用只可以包含一个UIAbility组件。
  • 正确(True)
  • 错误(False)

什么是UIAbility暂不清楚,但是一个应用中只能包含的应该是Application之类的东西,与Alibility不沾边,选择错误,拿下!

  1. Background状态在UIAbility实例销毁时触发。可以在onDestroy()回调中进行系统资源的释放、数据的保存等操作。
  • 正确(True)
  • 错误(False)

Background状态看字面意思应该是后台状态,销毁状态应该是destroy状态,选择错误,拿下!后部分看起来倒是没有问题。

单选题

  1. 关于module.json5配置文件的标签描述,以下哪个是错误的?
  • A. pages标签标识当前Module的配置的应用环境变量
  • B. deviceTypes标签标识当前设备可以运行在哪类设备上
  • C. abilitis标签标识当前Module中UIAbility的配置信息
  • D. requestPermissions标签标识当前应用运行时需要向系统申请的权限集合

首选A,pages标签代入uniapp的配置,很明显应该是页面的配置,而不是关于环境变量,环境变量应该是env相关的;B直译就是设备类型,没有问题;C看起来也很合理;D中和微信小程序的标签相同,也没问题,选A,拿下!

  1. 在UIAbility实例销毁时触发什么状态?
  • A. Background
  • B. Foreground
  • C. Destroy
  • D. Create

直译选C,没啥好说的。

  1. UIAbility实例创建完成时触发的回调:
  • A. onCreate()
  • B. onForeground()
  • C. onBackground()
  • D. onDestroy()

直译选D,没啥好说的。

  1. 如果需要定义某个Module可以在手机、平板和机车上运行,则修改以下哪个文件?
  • A. app.json5
  • B. module.json5
  • C. oh-package.json5
  • D. oh-package-lock.json5

按照单选1提到的,deviceTypes应该是在module的配置中,选B,拿下!并且CD带入npm导包的文件目录来说,更有可能是第三方包的内容。

多选题

  1. UIAbility的生命周期有哪几个状态?
  • A. Create
  • B. WindowStageCreate
  • C. Foreground
  • D. Background
  • E. WindowStageDestory
  • F. Destroy

首先生命周期基本都是包含有创建销毁的,并且按照单选提到的部分,后台也是一种生命周期,那么与后台对应的,前台很有可能也是一种生命周期,而BE按照字面理解是描述窗口Stage的创建销毁,暂不了解Stage模型与UIAbility的关系,暂时不选,选择ACDF,拿下!

  1. Stage模型提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”,其设计基于哪些出发点:
  • A. 为复杂应用而设计
  • B. 原生支持应用组件级的跨端迁移和多端协同
  • C. 支持多设备和多窗口形态
  • D. 平衡应用能力和系统管控成本

按照题干描述的内容来说,前部分必定是正确描述,那么UIAbllity与WindowStage应该是相互协助的两部分,而不是UIAbility整体的部分。所以上题BE排除。再看选项,基本都是第一课中提到的理念,这些组件基于这些理念出发,全选,拿下!

  1. 开发态的应用程序结构包含多种文件类型,以下说法正确的有:
  • A. 配置文件,包括应用级配置信息app.json5、以及Module级配置信息module.json5
  • B. ArkTS源码文件,主要存放在Module_name > src > main > ets目录下
  • C. 资源文件,包括应用级资源文件、以及Module级资源文件,支持图形、多媒体、字符串、布局文件等
  • D. 其他配置文件,用于编译构建,包括构建配置文件、编译构建任务脚本、混淆规则文件、依赖的共享包信息等

A选型前文已经提到过,正确;B选项看过HelloWorld程序结果,也是正确的;C选项类比Vue与Spring Boot项目,也是正常的设计,正确;D选项类比Vue,也是正常的设计,全选!拿下!

回顾

再次裸考满分拿下,在第四课的习题中,提出了两个之前没有看到过的内容,Stage、UIAbility,并且在其他内容中也通过大量相关的问题可以看出,这两部分可能就是应用开发的核心内容,重要程度可能类似于Vue中的组件概念,或者Spring 全家桶中的Spring容器,应该仔细研究。

重点记录

以下记录个人认为是核心的内容:

  1. Stage模型提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”,其出发点在于:为复杂应用而设计、原生支持应用组件级的跨端迁移和多端协同、支持多设备和多窗口形态、平衡应用能力和系统管控成本。在Stage模型中,多个应用组件共享同一个ArkTS引擎实例,这使得组件之间可以方便地共享对象和状态,同时减少了内存占用。这可以用虚拟机和docker类比,传统应用就像虚拟机独占一部分系统资源一样,独占一个渲染引擎;Stage模型构建的应用则像docker容器共用内核资源,共享一个渲染引擎。
  2. UIAbility组件是系统调度的基本单元,为应用提供绘制界面的窗口。一个应用可以包含一个或多个UIAbility组件。例如,在支付应用中,可以将入口功能和收付款功能分别配置为独立的UIAbility。每一个UIAbility组件实例都会在最近任务列表中显示一个对应的任务。
  3. UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,而两个WindowStage状态则是UIAbility创建销毁窗口的一个阶段,对应于从创建到进入前台页面和销毁前的两个阶段,可以设置UI资源的加载与释放,与游戏开发中的加载或释放UI资源类似。

标签:学习指南,配置文件,鸿蒙,应用程序,UIAbility,拿下,应用,组件,Stage
From: https://blog.csdn.net/weixin_52490101/article/details/142259011

相关文章

  • 关于鸿蒙开发框架,页面搭建样式语法总结
    鸿蒙中的变量/常量创建采用了ts语法我们在声明变量的同时需要指定变量类型,定义变量时也是要遵守变量命名规范:    1.只能包含数字、字母、下划线、$,不能以数字开头…重点    2.不能使用内置关键字或保留字,比如let、const    3.严格区分大小写1.变......
  • 【鸿蒙】HarmonyOS NEXT星河入门到实战7-ArkTS语法进阶
    目录1、Class类1.1Class类实例属性1.2 Class类构造函数1.3Class类定义方法1.4静态属性和静态方法1.5继承extends和super关键字1.6instanceof检测是否实例1.7.修饰符(readonly、private、protected、public)1.7.1readonly1.7.2Private  1.7.3......
  • 【鸿蒙】HarmonyOS NEXT星河入门到实战4-ArkTS界面布局深入
    目录一、布局元素组成1.1内边距-padding1.2外边距margin1.3实战案例-QQ音乐-登录1.4边框border 二、设置组件圆角2.1基本圆角设置2.2特殊形状的圆角设置三、背景属性3.1背景图片-backgroundImage3.2背景图片位置-backgroundImagePosition3.3背景定位-......
  • 【鸿蒙】HarmonyOS NEXT星河入门到实战5-基础语法
    目录一、字符串拼接1.1常规字符串拼接1.2模板字符串`hello`(符号在键盘的tab上面)二、类型转换(数字和字符串)2.1字符串转数字 2.2数字转字符串三、交互3.1点击事件3.2状态管理 3.3计数器案例四、运算符4.1算数运算符 4.2赋值运算符4.3点赞案例  ......
  • 【鸿蒙应用】总结一下ArkUI
    ArkUI是HarmonyOS应用界面的UI开发框架,提供了简洁的UI语法、UI组件、动画机制和事件交互等等UI开发基础,以此满足应用开发者对UI界面开发的需求。组件是界面搭建的最小单位,开发者通过多种组件的组合构成完整的界面。页面是ArkUI最小的调度分隔单位,开发者可以将应用设计为......
  • 【鸿蒙应用】Grid和GridItem组件
    Grid是网格容器,有行和列组成,通过GridItem组件所在的单元格做出各种各样的布局。比如:@Entry@Preview@ComponentstructIndex{privatearr:string[]=["1","2","31","14","51","61","71","18"];build()......
  • 【鸿蒙应用】List、ListItem和ListItemGroup组件
    List组件是一个列表组件,包含一系列相同宽度的列表,适合连续、多行呈现同类数据的,比如图片。ListItem组件是用来展示列表具体项的item;ListItemGroup组件是用来展示列表item分组的,这两个组件必须是配合List组件来使用。比如:interfaceItemType{title:string;projects:s......
  • 【鸿蒙应用开发】常见的容器组件:ColumnSplit、RowSplit和Flex
    上一章已经了解了Column和Row的一些属性,以下是几个案例:设置子组件水平方向的间距为:5@Entry@Preview@ComponentstructIndex{@Statemessage:string='Hello鸿蒙';controller:webview.WebviewController=newwebview.WebviewController();build(){Column(......
  • 鸿蒙应用开发的容器组件——Column和Row
    在鸿蒙(HarmonyOS)开发中,Column和Row是两种非常基础的布局组件,它们分别用于在垂直方向和水平方向上排列子组件。这些组件使得开发者能够轻松地构建出结构清晰、布局合理的用户界面。下面将详细介绍这两个组件的属性以及如何使用它们。Column和Row是常用的容器组件之一。Column是......
  • 《鸿蒙/Harmony | 开发日志》请求用户权限 & 打开应用设置界面
    鸿蒙的请求用户权限相对比较好用,下面的代码,基本是来源华为官方的文档,只需要封装一下,挺好用。鸿蒙的权限分类鸿蒙的权限分为两种系统权限(直接配置文件配置申请,不需要询问用户)需要用户手动确认的权限(必须提示用户主动授权)参考:《应用权限管控概述》在配置文件中设置需要申......