ArKTS系列—基础知识篇

126 阅读4分钟

操作系统

Q1:HarmonyOS 技术架构包括哪几层?并简述各层功能

HarmonyOS从下向上依次为内核层,系统服务层,框架层和应用层

内核层主要包括内核子系统和驱动子系统,内核子系统:采用多内核,通过抽象层提供基础内核能力,适配不同设备。驱动子系统:提供统一外设访问及驱动开发管理框架,便于硬件生态开放。

系统服务层是HarmonyOS的核心能力集合,通过框架层对应用程序提供服务。

框架层负责提供多语言的用户程序框架、UI 框架,还有对外的多语言框架 API,方便应用开发。

应用层由有 UI 的 FA 和无 UI 的 PA 组成,能实现业务功能,支持跨设备调度分发,保障用户体验。

Q2:HarmonyOS技术特性

  1. 硬件互助,资源共享
  2. 一次开发,多端部署
  3. 统一OS,弹性部署

开发工具

Q1: 简述 DevEco Studio 有哪些基本特性?

  1. 智能高效代码编辑
  2. 多设备统一开发环境
  3. 多端设备模拟仿真
  4. 支持多语言的代码开发和调试
  5. 低代码可视化开发
  6. 多端双向实时预览

语言特性

Q1: 简述@Entry、@Component、@State 和@Preview 这四种装饰器的作用是什么?

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

@Component:用该装饰器装饰的struct为自定义组件,需要实现build()方法。

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

@Preview:装饰struct,用@Preview装饰的自定义组件可以在DevEco Studio的预览器上进行实时预览。

Q2: 请列举 HarmonyOS 应用开发中常用的几种布局组件,并简述其特点。(至少三种)。

1.线性布局: 最常用,线性布局的子组件在线性方向上(水平方向和垂直方向)依次排列。

2.Stack布局 堆叠容器,子组件按照顺序依次入栈,后一个子组件覆盖前一个子组件。

3.弹性Flex布局: 自适应布局中最灵活的布局,提供一种更加有效的方式来对容器中的自组件进行排列,对齐和分配剩余空间。

Q3:自定义组件生命周期回调函数有哪些?

  1. aboutToAppear()
  2. onPageShow()
  3. onBackPress()
  4. onPageHide()
  5. aboutToDisappear()

Q4: 从应用组件分类角度看,FA 模型和 Stage 模型有何区别?

FA模型的组件分类为PageAbility,ServiceAbility,DataAbility,无法进行派生,不利于扩展能力,Stage模型主要分为UIAbility组件和ExtensionAbility组件,可以进行派生,利于扩展能力。

Q5: Ability 的生命周期包括哪几个状态?

Create,Foreground,Background,Destroy

Q6: Ability 的生命周期包括哪几个回调方法?

onCreate() onWindowStageCreate() onForeground() onBackground() onWindowStageDestroy() onDestroy()

Q7: 使用 Want 启动 Ability 有哪两种常用的启动方式?简述各自特点。

显式和隐式:

显式Want是在启动Ability时指定了abilityName和bundleName,通常用于应用内组件启动,通过在 Want 对象内指定本应用 Bundle 名称信息和 abilityName 来启动应用内目标组件。当有明确处理请求的对象时,显式Want是一种简单有效的启动目标应用组件的方式。

隐式Want是在启动目标应用组件时,调用方传入的 want 参数中未指定 abilityName。当需要处理的对象不明确时,可以使用隐式 Want,在当前应用中使用其他应用提供的某个能力,而不关心提供该能力的具体应用。隐式 Want 使用 skills 标签来定义需要使用的能力,并由系统匹配声明支持该请求的所有应用来处理请求。

Q8: 什么是原子化服务?具有哪些特征?

原子化服务是 HarmonyOS 提供的一种面向未来的服务提供方式,是有独立入口、免安装、可为用户提供一个或多个便捷服务的新型应用程序形态。

具有以下特征:

1.秒开直达,纯净清爽

2.服务相伴,恰和适宜

3.用完即走,账号相随

4.一体两面,嵌入运行

Q9: 简述使用 Image Kit 进行图片开发的主要流程。

image.png

Q10: 简述原子化服务与服务卡片的区别与联系。

区别:原子化服务是免安装应用形态,功能完整;服务卡片是信息展示交互载体,功能较简单。

联系:服务卡片是原子化服务主要呈现形态与入口,二者相互依存,卡片助服务触达用户。