diff --git a/ArkUIKit/AppStorage/AppScope/app.json5 b/ArkUIKit/AppStorage/AppScope/app.json5
new file mode 100644
index 0000000000000000000000000000000000000000..0d37e7c5f416e6838c0f860a30fc1fdb6b871546
--- /dev/null
+++ b/ArkUIKit/AppStorage/AppScope/app.json5
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2025 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License")
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+{
+ "app": {
+ "bundleName": "com.samples.appstorage",
+ "vendor": "example",
+ "versionCode": 1000000,
+ "versionName": "1.0.0",
+ "icon": "$media:layered_image",
+ "label": "$string:app_name"
+ }
+}
diff --git a/ArkUIKit/AppStorage/AppScope/resources/base/element/string.json b/ArkUIKit/AppStorage/AppScope/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..3812124c10b5e979077eebf9dc2eee141ec0caf6
--- /dev/null
+++ b/ArkUIKit/AppStorage/AppScope/resources/base/element/string.json
@@ -0,0 +1,8 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "AppStorage"
+ }
+ ]
+}
diff --git a/ArkUIKit/AppStorage/AppScope/resources/base/media/background.png b/ArkUIKit/AppStorage/AppScope/resources/base/media/background.png
new file mode 100644
index 0000000000000000000000000000000000000000..923f2b3f27e915d6871871deea0420eb45ce102f
Binary files /dev/null and b/ArkUIKit/AppStorage/AppScope/resources/base/media/background.png differ
diff --git a/ArkUIKit/AppStorage/AppScope/resources/base/media/foreground.png b/ArkUIKit/AppStorage/AppScope/resources/base/media/foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb9427585b36d14b12477435b6419d1f07b3e0bb
Binary files /dev/null and b/ArkUIKit/AppStorage/AppScope/resources/base/media/foreground.png differ
diff --git a/ArkUIKit/AppStorage/AppScope/resources/base/media/layered_image.json b/ArkUIKit/AppStorage/AppScope/resources/base/media/layered_image.json
new file mode 100644
index 0000000000000000000000000000000000000000..fb49920440fb4d246c82f9ada275e26123a2136a
--- /dev/null
+++ b/ArkUIKit/AppStorage/AppScope/resources/base/media/layered_image.json
@@ -0,0 +1,7 @@
+{
+ "layered-image":
+ {
+ "background" : "$media:background",
+ "foreground" : "$media:foreground"
+ }
+}
\ No newline at end of file
diff --git a/ArkUIKit/AppStorage/README.md b/ArkUIKit/AppStorage/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..8f593d5a958e641595674f521cea97e04317b21f
--- /dev/null
+++ b/ArkUIKit/AppStorage/README.md
@@ -0,0 +1,122 @@
+# arkts-appstorage
+
+## 介绍
+
+AppStorage是在应用启动时创建的单例,用于提供应用状态数据的中心存储。这些状态数据在应用级别可访问。AppStorage在应用运行过程中保留其属性。
+
+AppStorage中保存的属性通过唯一的字符串类型属性名(key)访问,该属性可以和UI组件同步,且可以在应用业务逻辑中被访问。
+
+AppStorage支持应用的主线程内多个UIAbility实例间的UI状态数据共享。
+
+AppStorage中的属性通过唯一的字符串类型key值访问,支持与UI组件同步,并可在应用业务逻辑中被访问。其支持应用的主线程内多个UIAbility实例间的UI状态数据共享。
+
+[AppStorage:应用全局的UI状态存储](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/state-management/arkts-appstorage.md)。
+
+## 效果预览
+
+| 首页 | CustomDialogController_CAPI页面 | OpenCustomDialog_CAPI页面 |
+|----------------------------------------------------|-----------------------------------------------------|----------------------------------------------------|
+|
|
|
|
+
+## 使用说明
+
+1. 安装编译生成的hap包,并打开应用;
+2. 首页面会出现页面列表,点击此列表项进入对应页面示例界面;
+
+## 工程目录
+
+```
+PersistentStorage
+entry
+└── src
+ ├── main
+ │ ├── ets
+ │ │ ├── entryability
+ │ │ │ └── EntryAbility.ets
+ │ │ ├── entrybackupability
+ │ │ │ └── EntryBackupAbility.ets
+ │ │ └── pages
+ │ │ ├── Index.ets
+ │ │ ├── PageEight.ets //示例8:emit接口不支持在Previewer预览器中使用
+ │ │ ├── PageFive.ets //示例5:装饰Map类型变量
+ │ │ ├── PageFour.ets //示例4:装饰Date类型变量
+ │ │ ├── PageNine.ets //示例9:三元表达式使用
+ │ │ ├── PageOne.ets //示例1:从应用逻辑使用AppStorage和LocalStorage
+ │ │ ├── PageSeven.ets //示例7:不建议借助@StorageLink的双向同步机制实现事件通知
+ │ │ ├── PageSix.ets //示例6:装饰Set类型变量
+ │ │ ├── PageTen.ets //示例10:@StorageProp和AppStorage接口配合使用时,需要注意更新规则
+ │ │ ├── PageThree.ets //示例3:AppStorage支持联合类型
+ │ │ └── PageTwo.ets //示例2:从UI内部使用AppStorage
+ │ ├── module.json5
+ │ └── resources
+ │ ├── base
+ │ │ ├── element
+ │ │ │ ├── color.json
+ │ │ │ ├── float.json
+ │ │ │ └── string.json
+ │ │ ├── media
+ │ │ │ ├── background.png
+ │ │ │ ├── foreground.png
+ │ │ │ ├── layered_image.json
+ │ │ │ └── startIcon.png
+ │ │ └── profile
+ │ │ ├── backup_config.json
+ │ │ └── main_pages.json
+ │ ├── dark
+ │ │ └── element
+ │ │ └── color.json
+ │ └── rawfile
+ ├── mock
+ │ └── mock-config.json5
+ ├── ohosTest
+ │ ├── ets
+ │ │ └── test
+ │ │ ├── Ability.test.ets
+ │ │ ├── Index.test.ets
+ │ │ └── List.test.ets
+ │ └── module.json5
+ │ └── ohosTest.md
+ └── test
+ ├── List.test.ets
+ └── LocalUnit.test.ets
+```
+## 具体实现
+
+1. AppStorage 基础初始化与数据操作实现:通过AppStorage.setOrCreate('propA', 47)初始化全局状态(键propA,值 47),支持跨主线程内多个 UIAbility 共享;通过AppStorage.get('propA')获取值,AppStorage.set('propA', 100)修改值,且操作仅作用于运行内存,应用重启后未持久化的数据会丢失。
+2. @StorageProp 单向同步实现:组件内用@StorageProp('propA') storageProp: number = 1绑定 AppStorage 的propA,本地可修改(如this.storageProp += 1)但不回传 AppStorage;当 AppStorage 中propA更新(如AppStorage.set('propA', 100)),storageProp会被覆盖并触发组件刷新,且禁止从父组件初始化该变量。
+3. @StorageLink 双向同步实现:组件内用@StorageLink('propA') storageLink: number = 1绑定 AppStorage 的propA,本地修改(如this.storageLink += 1)会同步回 AppStorage;AppStorage 中propA更新时,所有绑定该键的@StorageLink和@StorageProp变量均会同步刷新,支持初始化子组件的@State/@Prop等状态。
+4. 联合类型(含 null/undefined)同步实现:API 12 + 支持@StorageLink('linkA') linkA: number | null = null或@StorageProp('propB') propB: number | undefined = undefined;点击文本可切换值(如this.linkA ? this.linkA = null : this.linkA = 1),值变化会同步(双向 / 单向)至 AppStorage,UI 实时展示当前类型值。
+5. Date 类型同步实现:API 12 + 支持@StorageLink('date') selectedDate: Date = new Date('2021-08-08');通过this.selectedDate.setFullYear(this.selectedDate.getFullYear() + 1)修改日期属性,或AppStorage.setOrCreate('date', new Date('2023-07-08'))直接更新 AppStorage,两者均能触发DatePicker组件 UI 刷新。
+6. Map 类型同步实现:API 12 + 支持@StorageLink('map') message: Map = new Map([[0, 'a']]);通过this.message.set(4, 'd')(添加键值对)、this.message.clear()(清空)、AppStorage.get