单选题
【单选题】通过 HAR 可以实现多个模块或多个工程共享 ArkUI 组件、资源等相关代码。下列关于 HAR 使用限制说法正确的有
A
HAR 支持在设备上单独安装/运行,也支持作为应用模块的依赖项被引用。
B
HAR 支持引用 AppScope 目录中的资源。
C
HAR 可以依赖其他 HAR,但不支持循环依赖,也不支持依赖传递
D
HAR 支持在配置文件中声明 UlAbility 组件与 ExtensionAbility 组件
答案解析
正确答案:C
解析:
本题考查的是对 HAR(Harmony Archive)特性和使用限制的理解,特别是在 ArkTS 开发环境下多个模块或工程之间共享代码和资源时的应用规则。
我们逐项分析选项:
A: HAR 支持在设备上单独安装/运行,也支持作为应用模块的依赖项被引用。
该说法错误。HAR 是静态共享库,本质上是一组可复用的代码和资源集合,它不能独立安装或运行。HAR 必须被其他模块(如 HAP 模块)依赖并打包进最终的应用中,无法在设备上单独存在或执行。因此 A 错误。
B: HAR 支持引用 AppScope 目录中的资源。
该说法错误。AppScope 是应用级别的私有目录,用于存放应用全局配置和资源,具有较高的访问限制。HAR 作为可被多个模块复用的共享库,不能引用 AppScope 中的资源,否则会导致模块间的强耦合和路径依赖问题。因此 B 错误。
C: HAR 可以依赖其他 HAR,但不支持循环依赖,也不支持依赖传递。
该说法正确。HAR 允许依赖另一个 HAR,实现代码的分层复用。但为避免复杂依赖关系带来的构建和维护问题,HAR 不支持循环依赖(即 A 依赖 B,B 又依赖 A)。同时,HAR 的依赖不具备传递性,例如:模块 A 依赖 HAR1,HAR1 依赖 HAR2,则 A 并不能自动使用 HAR2 中的内容,必须显式引入 HAR2。这是当前 HarmonyOS 工程体系中的明确限制。因此 C 正确。
D: HAR 支持在配置文件中声明 UIAbility 组件与 ExtensionAbility 组件。
该说法错误。HAR 仅用于共享代码和资源,不能包含 Ability 组件(如 UIAbility 或 ExtensionAbility),也不能在其配置文件中声明这些组件。Ability 组件只能在 HAP 模块的配置文件中声明。若允许 HAR 声明 Ability,将导致应用结构混乱和生命周期管理困难。因此 D 错误。
综上所述,唯一正确的选项是 C。
核心知识点总结:
- HAR 是静态共享库,用于共享 ArkUI 组件、工具类、资源等,不可独立运行。
- HAR 可被多个模块引用,提升代码复用性。
- HAR 不支持独立安装,不能声明 Ability 组件,不能引用 AppScope 资源。
- HAR 可依赖其他 HAR,但禁止循环依赖,且依赖不具传递性。
正确答案:C
相关知识点:
HAR 使用限制要记清
题目纠错
2025年HarmonyOS应用开发者基础认证题库
相关题目
单选题
【单选题】下列关于 http 请求可选参数字段的说法错误的是
单选题
【单选题】通过 divider 属性的哪一个参数可以设置列表分割线距离列表页侧边结束端的距离
单选题
【单选题】在 ArkUl 中,可以通过下列哪几种方式来控制组件元素的显示与隐藏
单选题
【单选题】UlAbility 组件是在以下哪个回调方法中调用 loadContent()方法加载页面的
单选题
【单选题】下面哪个文件用于声明应用 Bundle 名称、应用名称等全局配置信息
单选题
【单选题】在 SpecifedAbility 启动之前,会先进入对应的 AbilityStage 的哪个生命周期回调中,以获取该 UIAbility 实例的 Key 值
单选题
【单选题】以下关于 AbilityStage 生命周期回调的说法错误的是
单选题
【单选题】以下关于 AbilityStage 说法正确的是
单选题
【单选题】以下关于 UIAbility 组件的 onNewWant()回调函数正确的是
单选题
【单选题】UIAbility 切换至前台时触发以下哪种状态
