# 1. ArkUI 的声明式 UI,状态管理与组件更新机制? A 状态变化时框架基于依赖收集仅刷新受影响的组件,而非整页重绘 ✓ 正确答案 B 修改普通成员变量也会自动触发组件刷新 C 声明式 UI 每次状态变化都必须手动调用刷新函数 D ArkUI 状态更新是同步逐帧执行的,没有调度优化
# 2. 鸿蒙组件生命周期 aboutToAppear/aboutToDisappear 与页面生命周期的关系 A 页面被新页面覆盖时会触发 aboutToDisappear B aboutToDisappear 在页面隐藏时立即触发 C onPageShow 只会在页面首次加载时触发一次 D aboutToAppear 在组件即将挂载前触发,适合初始化与数据请求;页面显示状态由 onPageShow/onPageHide 管理 ✓ 正确答案
# 3. 鸿蒙 TaskPool 与 Worker 的多线程选择依据与线程间通信方式 A TaskPool 适合需要常驻并有跨任务状态的长任务 B Worker 的线程由系统自动创建和复用,开发者无需管理 C 两者都无法传递 ArrayBuffer 数据 D TaskPool 适合相互独立的短时计算任务,Worker 适合有状态的常驻任务 ✓ 正确答案
# 4. 应用包结构 HAP/HAR/HSP 的差异与模块化发布策略 A HAR 在运行时动态加载,可以单独升级 B HSP 编译期被打包进宿主,多个宿主各持有一份副本 C HAP 是安装运行的基本单元,HAR 编译期打入宿主,HSP 运行时按需动态加载 ✓ 正确答案 D 一个应用只能包含一个 HAP
# 5. HarmonyOS NEXT 纯血鸿蒙剔除 AOSP 带来的存量代码适配改造 A 存量 APK 加一层兼容壳即可在 NEXT 上直接运行 B 建议先分层盘点再分批灰度,如先用 ArkWeb 加载 H5 过渡,再逐页原生化替换 ✓ 正确答案 C Android 的 AAR 第三方库无需改造即可被 ArkTS 调用 D NEXT 仍保留 Android SDK 全部接口,只是不再更新
# 6. ArkWeb(Web 容器)加载 H5 的机制与 JSBridge 双向通信(registerJavaScriptProxy 注入与回调) A registerJavaScriptProxy 用于原生侧调用 H5 中的 JS 函数 B H5 通过 registerJavaScriptProxy 注入的原生全局对象调用原生方法,原生再通过 runJavaScript 等方式回调 H5 ✓ 正确答案 C 注入的桥对象无需注册即可被 H5 直接访问 D 桥接调用没有跨线程开销,可以高频大量调用
# 7. 既有 Web 前端应用迁移到 ArkTS/ArkUI 的路径(H5 套壳 / 逐页原生化 / Taro/uni-app 编译)与成本评估 A 逐页原生化一次替换所有页面,无需过渡期 B Taro/uni-app 编译方案可以零成本迁移所有原生能力 C H5 套壳方案成本最低但体验受限,适合过渡;核心页面可逐页原生化以提升体验 ✓ 正确答案 D 三种路径互相排斥,只能选择一种
# 8. ArkTS 与 TypeScript 的差异,静态类型与限制? A ArkTS 是 TypeScript 的超集,增加了更多动态特性 B ArkTS 禁用结构化类型的开放用法并限制 any,以换取运行时性能与静态可分析性 ✓ 正确答案 C ArkTS 完全支持 any 类型且无任何限制 D ArkTS 与 TypeScript 在类型系统上没有任何区别
# 9. ArkUI 声明式开发与命令式开发的核心差异与适用场景 A 声明式以"状态驱动 UI 自动更新"为核心,命令式以"手动操作节点"为核心,各自适合不同复杂度与性能要求的场景 ✓ 正确答案 B 声明式开发需要手动获取节点并更新属性 C 命令式开发中 UI 与数据自动双向绑定 D 声明式只适合写静态页面,无法处理动态数据
# 10. @State/@Prop/@Link/@Provide/@Consume 装饰器的数据流向与刷新范围 A @Provide/@Consume 实现祖先与后代之间的跨层数据共享,@Link 实现父子双向同步 ✓ 正确答案 B @State 变化时整个页面全部刷新 C @Prop 是父子双向同步,子组件修改会同步回父组件 D @Consume 只能接收同层兄弟组件提供的数据
# 11. ArkUI 状态管理 V2(@ObservedV2/@Trace)相比 V1 的细粒度更新优势 A V2 与 V1 的装饰器可以在同一数据链路上混用 B V2 观测的是整个类,类内任意属性变化都会刷新所有引用组件 C V2 将观测粒度细化到属性,仅 @Trace 标记的属性变化才会触发对应 UI 精确刷新 ✓ 正确答案 D V2 不支持对象字面量与集合类数据
# 12. Stage 模型与 FA 模型的核心差异及新应用优先选用 Stage 的原因 A Stage 模型将应用拆分为 UIAbility/ExtensionAbility 与 Module,权限按需申请、支持多 HAP 按需分发,是新应用推荐方案 ✓ 正确答案 B FA 模型支持按需动态授予权限,后台管控更严格 C Stage 模型中多个 UIAbility 必须共用一个 Context D FA 模型是鸿蒙官方推荐的演进方向
# 13. UIAbility 与 ExtensionAbility 的职责边界与启动模式 A UIAbility 负责用户交互与页面展示,ExtensionAbility 负责系统能力扩展,launchType 控制 UIAbility 的实例化行为 ✓ 正确答案 B UIAbility 的 singleton 模式每次启动都会新建独立实例 C ExtensionAbility 是用户交互的主入口,承载全部页面 D 一个应用只能有一个 UIAbility
# 14. ArkTS 相比 TypeScript 的限制(禁结构化类型/强类型声明)及其设计动机 A ArkTS 允许任意类型变量隐式推导为 any 以提升灵活性 B ArkTS 的限制只是为了减少代码量 C ArkTS 中结构相同的任意两个类可以直接互相赋值 D ArkTS 禁止开放式结构化类型兼容并强制显式类型声明,目的是保证运行时确定性与静态工具链安全 ✓ 正确答案
# 15. ArkUI 中 @StorageLink 与 AppStorage/LocalStorage 的跨组件共享机制 A LocalStorage 是应用级全局存储,跨页面共享 B @StorageLink 是双向绑定,存储变化驱动组件刷新且组件修改回写存储;@StorageProp 是单向绑定 ✓ 正确答案 C @StorageProp 修改组件值会同步写回 AppStorage D AppStorage 只在单个页面内有效
# 16. ArkUI ForEach 的 keyGenerator 为何不能省略及其性能影响 A key 可以省略,省略后列表更新性能最优 B key 应使用数组下标,保证列表复用准确 C key 只在列表首次渲染时使用,更新时不参与 D key 用于建立数据项与组件实例的稳定映射,应使用稳定唯一且与数据相关的标识,省略或不稳定会导致状态错乱与全量重建 ✓ 正确答案
# 17. ArkUI-X 与 React Native/Flutter 在跨端能力、渲染一致性与生态上的取舍 A Flutter 自绘渲染不依赖原生控件,跨端像素级一致性最强 ✓ 正确答案 B React Native 使用 Dart 语言和自绘渲染引擎 C ArkUI-X 与鸿蒙生态无关,无法覆盖鸿蒙端 D 三者渲染一致性完全一致,只比生态
# 18. 鸿蒙的分布式能力,跨设备协同与流转? A 基于分布式软总线、分布式数据与任务调度,应用可实现跨设备流转与协同,接入时需处理序列化与断连恢复 ✓ 正确答案 B 分布式任务流转指多个设备同时独立运行互不关联的任务 C 跨设备流转不需要同账号与用户授权 D 分布式数据管理仅支持同一设备内的数据读写