鸿蒙应用入门级开发者认证实验六(UIAbility请假批复)
“This project has no targetSdkVersion field configured”是 一个配置问题。targetSdkVersion 是应用兼容性的核心配置项,直接影响应用在不同系统版本上的行为(如 API 调用、权限机制等)。若不配置,应用在新设备上可能无法正常使用高版本 API 的特性。未适配目标 SDK 的安全策略可能导致权限异常。DevEco Studio 会持续弹出警告,影响开发效率。在工程的 build-profile.json5 文件中显式配置 targetSdkVersion 字段(同时建议检查其他关键字段)
| 字段 | 作用 | 格式要求 |
|---|---|---|
targetSdkVersion |
指定应用适配的目标系统版本(如 6.0.0(20)) |
主版本.次版本.修订版本(API版本) |
compatibleSdkVersion |
应用兼容的最低系统版本(如 4.0.0(10)) |
同上 |
compileSdkVersion |
编译时使用的 SDK 版本(建议与 targetSdkVersion 一致) |
同上 |
runtimeOS |
运行平台(HarmonyOS 或 OpenHarmony) |
严格匹配大小写 |
然后在 DevEco Studio 中点击 Sync Project 同步配置。
Ability(能力)是应用/元服务的核心能力单元,是承载应用功能、生命周期管理和跨设备协同的基础框架。对应用功能的封装,例如:
UIAbility:提供界面展示和用户交互能力(如购物车主页、个人信息页)ExtensionAbility:扩展特定场景能力(如后台任务调度、数据备份、跨进程嵌入界面)
管理应用组件的创建、销毁、前后台切换(Stage模型仅需处理onCreate, onForeground, onBackground, onDestroy四个状态),与UI组件生命周期解耦。
| 维度 | Ability | UI组件(如Button/List) |
|---|---|---|
| 层级 | 功能容器(如“舞台”) | 界面元素(如“舞台上的演员”) |
| 职责 | 管理进程资源、跨设备迁移、生命周期 | 渲染界面、响应用户操作 |
| 代码示例 | @Entry修饰的UIAbility类 |
@Component修饰的自定义组件 |
旧版FA模型将UI与Ability强耦合,Stage模型通过分离WindowStage(窗口管理)和Ability,提升灵活性。
Ability是鸿蒙应用的“骨架”,负责功能调度和资源管理;UI组件是“肌肉”,负责具体交互。二者协同构成完整的应用生态体系。
@StorageLink 是 ArkUI 中用于实现双向数据绑定的关键装饰器,主要解决全局状态管理和跨组件通信问题。@StorageLink('key') 将组件变量与全局的 AppStorage 中指定键名的属性建立双向绑定:
// 组件内变量
@StorageLink('type') type: string = ''; // 等价于 AppStorage 中的全局属性:'type'
当 AppStorage 中 'type' 的值变化 → 自动更新所有绑定该键的组件 UI;当组件内修改 this.type → 自动同步回 AppStorage 并触发全局更新
| 装饰器 | 同步方向 | 数据源 | 典型场景 |
|---|---|---|---|
@StorageLink |
双向同步 | AppStorage | 跨组件/跨页面的全局状态共享 |
@StorageProp |
单向同步 | AppStorage | 只读全局数据(如配置项) |
@LocalStorageLink |
双向同步 | LocalStorage | 单页面内组件间通信 |
@StorageLink('type') type: string | undefined = '';
@StorageLink('time') time: string | undefined = '';
在复杂页面中避免过度使用,建议结合 @LocalStorageLink 做局部状态管理
通过
@StorageLink可高效实现 “Ability 修改 → 自动刷新 UI” 的闭环,解决了传统回调式传参的冗余代码问题,尤其在跨设备协同场景下优势显著。
在代码 string | undefined 中,竖线 | 表示 联合类型(Union Type),这是 TypeScript(ArkTS 基于此)的核心特性,表示 type 可以是 字符串类型 或 undefined 类型,若传递的值不是字符串或 undefined,编译器会报类型错误
@StorageLink('type') type: string | undefined = '';
“Storage” 在鸿蒙中特指 轻量级数据存储系统,命名源于其核心功能:
| 特性 | 说明 | 技术支撑 |
|---|---|---|
| 数据持久化 | 应用关闭后数据不丢失 | 文件存储(如 mystore 文件) |
| 键值对存储 | 类似 Map 的键值结构 |
storage.putSync('key', value) |
| 跨组件/跨页面共享 | 全局状态管理 | AppStorage 双向绑定 |
| 内存缓存优化 | 高频读取时减少 I/O 开销 | removeStorageFromCacheSync() 接口 |
“Preview”即预览功能在鸿蒙开发中无法运行涉及Ability的应用。预览器(Previewer)主要用于UI组件的实时或动态预览,但它不会执行Ability的生命周期(如onCreate、onDestroy等)。这意味着任何依赖Ability初始化的功能(如后台服务、页面跳转逻辑)在预览模式下都无法正常运作。
Ratify 通过正式批准或确认使某项协议、条约或法律生效。

- 点赞
- 收藏
- 关注作者
评论(0)